我有这样的代码奇怪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