6

我明白那个:

'\n' // literally the backslash character followed by the character for lowercase n
"\n" // interpreted by php as the newline character

但是对于我的生活,我无法理解为什么'\n' === '\\n'。在我看来,'\\n'将等于三个单独的字符:两个单独的反斜杠,后跟字母 n。

为什么'\n' === '\\n'在 PHP 中是真的?

4

3 回答 3

10

从手册(单引号字符串部分):

要指定文字单引号,请使用反斜杠 ( \) 对其进行转义。要指定文字反斜杠,请将其加倍 ( \\)。所有其他反斜杠实例将被视为文字反斜杠

所以在单引号字符串\n中是两个字符,但是\\n是文字反斜杠后跟字母'n' - 即相同的两个字符。

于 2012-07-02T23:54:55.477 回答
4

反斜杠仍然是单引号字符串中的转义字符(它转义文字单引号)。

例如,这是非法的(因为反斜杠转义了结束引号):

$path = 'C:\';

因此\\必须映射到文字反斜杠以避免无意转义。

于 2012-07-03T00:06:54.813 回答
2

这是因为'\\n'实际上是\n因为反斜杠是一个转义字符,在单引号中表现得很奇怪。它不会逃跑n,但会逃跑\

于 2012-07-02T23:53:02.437 回答