我有這樣的代碼奇怪preg_quote行爲
<?php
$a = "\\u0000";
$b = preg_quote($a);
echo "<br />my own: ".$a;
echo "<br />with preg_quote:". $b;
?>
怎麼可能一個\
字符從我$a
變量消失了?
我認爲這是非常begginer的行爲/問題,但我真的失去了這些轉義字符。
免責聲明:我不是在PHP
我有這樣的代碼奇怪preg_quote行爲
<?php
$a = "\\u0000";
$b = preg_quote($a);
echo "<br />my own: ".$a;
echo "<br />with preg_quote:". $b;
?>
怎麼可能一個\
字符從我$a
變量消失了?
我認爲這是非常begginer的行爲/問題,但我真的失去了這些轉義字符。
免責聲明:我不是在PHP
因爲\
確實有字符串的含義。
即\n
是一個新行煤焦代碼
所以\\
是反斜槓的轉義版本,並評估對\
$a="\\";
// $a
是\
現在,因爲第一\
另一個逃生\
一切都好
在$ a中,雙反斜槓被評估爲轉義反斜槓,導致輸出中出現一個反斜槓。
in $ b preg_quote會因爲它們是正則表達式元字符而轉義兩個反斜槓。導致連續出現四個反斜槓,導致輸出中出現兩個反斜槓。
\\
是\
的逃逸版本。因此,原始字符串在打印時僅顯示一個\
。但preg_quote
轉義\
字符與另一\
,從而導致\\
。
試試'echo「\\」;' – KingCrunch
當您不知道PHP字符串的工作方式時,您如何能成爲「不是PHP的初學者」? \ *劃痕頭\ * – Tomalak
我知道這將顯示\,在這種情況下,我知道爲什麼(因爲你會得到解析錯誤與單一) – genesis