3

我对以下字符串函数感到困惑

echo strlen("l\n2"); //give 3 in output

然而

echo strlen('l\n2'); //give 4 in output

谁能解释为什么?

4

2 回答 2

5

因为当您使用单引号 (' ') 时,PHP 不会将 扩展\n为单个换行符,而在双引号 (" ") 中,\n会转换为换行符(即单个字符),从而给出 3 个字符

取自 PHP 的字符串文档: http: //php.net/manual/en/language.types.string.php

注意:与双引号和heredoc 语法不同,特殊字符的变量和转义序列在出现在单引号字符串中时不会被扩展。

于 2012-06-22T14:17:29.173 回答
4

\n当字符串用单引号括起来时,不会被解析为换行符。相反,它被视为一个文字\,后跟n.

于 2012-06-22T14:16:25.647 回答