什么是PHP中的heredoc和nowdoc

heredoc结构类似于双引号字符串,nowdoc结构是类似于单引号字符串的。nowdoc结构很像heredoc结构,但是 nowdoc不进行解析操作。 这种结构很适合用在不需要进行转义的PHP代码和其它大段文本。与SGML的 <![CDATA[ ]]> 结构是用来声明大段的不用解析的文本类似,nowdoc结构也有相同的特征。
一个nowdoc结构也用和heredocs结构一样的标记 <<<, 但是跟在后面的标志符要用单引号括起来,就像<<<'EOT'这样。heredocs结构的所有规则也同样适用于nowdoc结构,尤其是结束标志符的规则。
看看下面的heredoc的例子:

$name="JBilder";$age="18";$title="JBilder_9986";
echo "这里是heredoc的使用:<br />";
echo <<<JBilderPHP
怎么解决关于自定义session时候session覆盖???我的名字叫做:{$name};年龄是:{$age};标题是:{$title}.
JBilderPHP;

得到的结果是:


看看下面的nowdoc的例子:

1 $name="JBilder";$age="18";$title="JBilder_9986";
2 echo "这里是heredoc的使用:<br />";
3 echo <<<JBilderPHP
4 怎么解决关于自定义session时候session覆盖???我的名字叫做:{$name};年龄是:{$age};标题是:{$title}.
5 JBilderPHP;
View Code

得到的结果是:

注意对于heredoc变量要使用大括号括起来,如果直接像下面那么写的话:

1 echo <<<'JBilderPHP'
2 怎么解决关于自定义session时候session覆盖???我的名字叫做:$name;年龄是:$age;标题是:$title.
3 JBilderPHP;
View Code

就会出现下面的提示性的错误:

 

posted @ 2018-05-04 19:20  ALonely  阅读(474)  评论(0编辑  收藏  举报