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

注:二重引用符やヒアドキュメントの構文とは異なり、特殊文字の変数とエスケープシーケンスは、単一引用符で囲まれた文字列で使用される場合は展開されません。

于 2012-06-22T14:17:29.173 に答える
4

\n文字列が一重引用符で囲まれている場合、改行文字として解析されません。\代わりに、リテラルの後に。が続くものとして扱われnます。

于 2012-06-22T14:16:25.647 に答える