本文分享下,我在实际工作中遇到的php中的双引号与单引号的一个问题,并附有解决方法,有需要的朋友,可以作个参考。
通过 PHP 过滤字符串中的换行符,通常会这样操作:
<?php $out = str_replace(array('\r\n', '\r', '\n'), '', $out);
PHP 提供三种定义字符串的方法:单引号、双引号、本地文档(英文叫做 here document 或者 heredoc)。
单引号:
使用单引号是最高效的方法,因为 PHP 不会检查单引号字符串中的内置变量和转义序列,需要转义的字符只有反斜杠和单引号本身。
双引号:
会检查内置变量和转义序列,但不能识别转义的单引号。
这也正说明了开始那段代码的错误之处,正确的做法是使用双引号来定义换行的转义序列:
<?php $out = str_replace(array("\r\n", "\r", "\n"), '', $out);
heredoc:
检查所有的内置变量和转义序列,双引号无需转义。
例如:
<?php echo <<<EOT
this is a "here document" example.
just for test.
EOT;
|