我理解:
'\n' // literally the backslash character followed by the character for lowercase n
"\n" // interpreted by php as the newline character
但是对于我的生活,我无法理解为什么'\n' === '\\n'
。在我看来,'\\n'
将等于三个独立的字符:两个单独的反斜杠,后跟字母n。
为什么PHP中'\n' === '\\n'
为真?
答案 0 :(得分:10)
从手册(section on single quoted strings):
要指定文字单引号,请使用反斜杠(
\
)对其进行转义。要指定文字反斜杠,请将其加倍(\\
)。反斜杠的所有其他实例将被视为文字反斜杠
所以在单引号字符串\n
中有两个字符,但\\n
是一个字面反斜杠后跟字母'n' - 即相同的两个字符。
答案 1 :(得分:4)
反斜杠仍然是单引号字符串中的转义字符(它会转义单引号)。
这是非法的(例如,因为反斜杠会逃避结束报价):
$path = 'C:\';
所以\\
必须映射到文字反斜杠以避免无意中的转义。
答案 2 :(得分:2)
这是因为'\\n'
实际上是\n
因为反斜杠是一个在单引号中表现奇怪的转义字符。它不会逃脱n
,但会逃脱\