我有这段代码
<?php
$a = "\\u0000";
$b = preg_quote($a);
echo "<br />my own: ".$a;
echo "<br />with preg_quote:". $b;
?>
一个\
字符可能会从我的$a
变量中消失?
我认为这是非常令人遗憾的行为/问题,但我真的迷失了这些转义字符。
免责声明:我不是PHP的招手
答案 0 :(得分:3)
因为\
转义了下一个,因为每个\
都需要转义。
单个\它会逃脱下一个字符女巫是你,但是\ u不是字符代码所以它显示为一个简单的字符
答案 1 :(得分:1)
因为\
确实在字符串中有意义。
即。 \n
是新行的字符代码
所以\\
是反斜杠的转义版本并且评估为\
答案 2 :(得分:1)
$a="\\";
// $a
现在是\
,因为第一个\
转义了另一个\
一切正常
答案 3 :(得分:1)
在$ a中,双反斜杠被评估为转义反斜杠,导致输出反斜杠。
$ b preg_quote中的将转义两个反斜杠,因为它们是正则表达式元字符。连续导致四个反斜杠,导致输出中有两个反斜杠。
答案 4 :(得分:1)
\\
是\
的转义版本。因此,原始字符串在打印时只显示一个\
。但是,preg_quote
将\
字符与另一个\
转义,从而导致\\
。