PHP中的heredoc和nowdoc有哪些区别

我不相信 http://php.net 上会没写
■网友
PHP定义字符串的4种方式:PHP: Strings前两种是我们常用的双引号 "" 和单引号 \u0026#39;\u0026#39; ,前者对字符串中以 $ 开头的变量进行解析,用变量值替换变量名。后者除了将 \\\u0026#39; 转义为字符 \u0026#39; ,其他都以原样输出。后两种 heredoc 和 nowdoc 是 PHP5.3 增加的语法糖,方便输出HTML代码,它们二者的区别是 heredoc 替换变量的值,类似双引号;nowdoc 将字符串当成纯文字直接输出,类似单引号。PHP5.3下,用法示例:heredoc: https://github.com/php/php-src/blob/master/Zend/tests/heredoc_007.phptnowdoc: https://github.com/php/php-src/blob/master/Zend/tests/nowdoc_007.phpt使用的数据:https://github.com/php/php-src/blob/master/Zend/tests/nowdoc.inc现在多数项目遵循MVC,前后端分离是基本要求,项目中很少有PHP代码直接输出HTML,而且 heredoc 和 nowdoc 的结束标签对缩进和空格很不友好,所以很难在项目代码中看到 heredoc 和 nowdoc 的踪影。我想到的一个例子是写测试脚本,只需要上传一个PHP文件就可以直接输出具有基本效果的网页。$a = \u0026#39;qwerty\u0026#39;;print \u0026lt;\u0026lt;\u0026lt; EOT\u0026lt;!DOCTYPE html\u0026gt;\u0026lt;html\u0026gt;\u0026lt;head\u0026gt;\u0026lt;/head\u0026gt;\u0026lt;body\u0026gt;\u0026lt;h1\u0026gt;这里是变量\u0026lt;/h1\u0026gt;\u0026lt;p\u0026gt;$a\u0026lt;/p\u0026gt;\u0026lt;script\u0026gt; alert(\u0026#39;JavaScript代码\u0026#39;)\u0026lt;/script\u0026gt;\u0026lt;/body\u0026gt;\u0026lt;/html\u0026gt;EOT;


    推荐阅读