PHP中的heredoc和nowdoc

  为了在PHP中插入字符串看起来更直观,结构更清晰,引入了使用heredoc或nowdoc,二者用于插入大量类似HTML或XML文件,heredoc如下:

<?php
    $str = <<<THE_XML
<animals>
    <type>dog</type>
    <name>snoopy</name>
</animals>
THE_XML;

    echo $str;
?>

请注意:作为结束的THE_XML;和开始<<<THE_XML前后不要有缩进或空格。

相同内容的nowdoc格式,如下:

<?php
    $str = <<<‘THE_XML‘
<animals>
    <type>dog</type>
    <name>snoopy</name>
</animals>
THE_XML;

    echo $str;
?>

二者有什么区别呢,对于heredoc来说,如果内容中出现变量,如$a,将会将变量解析。类似于字符串中的双引号;而nowdoc则是把字符直接存于字符串中,不会进行解释,类似于单引号。

时间: 2024-10-29 22:34:45

PHP中的heredoc和nowdoc的相关文章

php中的heredoc和nowdoc对比

两者的不同就相当于php双引号和单引号的不同,双引号会解析里边的变量,而单引号不会 heredoc语法 <?php $a = 'cqh'; $str = <<<HTML hello,$a HTML; echo $str; 或 <?php $a = 'cqh'; $str = <<<"HTML" hello,$a HTML; echo $str; 输出 hello,cqh 即heredoc语法是<<<后的标识符不加引号/加

什么是PHP中的heredoc和nowdoc

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

php中heredoc与nowdoc的使用方法

一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心.其对格式化输出内容时,比较有用 .具体其有以下特点: 1.开始标记和结束标记使用相同的字符串,通常以大写字母来写. 2.开始标记后不能出现空格或多余的字符. 3.结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 . 4.位于开始标记和结束标记之间的变量可以被正常解析,

php中heredoc与nowdoc的使用方法、定界符&lt;&lt;&lt;的使用方法

一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心.其对格式化输出内容时,比较有用 .具体其有以下特点: 1.开始标记和结束标记使用相同的字符串,通常以大写字母来写. 2.开始标记后不能出现空格或多余的字符. 3.结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 . 4.位于开始标记和结束标记之间的变量可以被正常解析,

heredoc 和 nowdoc

heredoc 和 nowdoc     多次使用 php nowdoc HereDoc 插入大量Hmtl都没有成功,一样提示语法有问题,事实上PHP手册注明是这样写的,实在很奇怪 最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说EOF前面不能有空格,而为了代码缩进,正好产生了这样的问题. 复制代码 代码如下: $str = <<<'EOD'Example of stringspanning multiple linesusing nowdoc syntax.EOD

php heredoc 与 nowdoc

php heredoc 与 nowdoc heredoc 结构 heredoc 句法结构:<<<.在该运算符之后要提供一个标识符,然后换行.接下来是字符串本身,最后要用前面定义的标识符作为结束标志. <?php $content = <<<FDIPZONE <html> <head> <title>test</title> </head> <body> <p><img src

heredoc和nowdoc的区别

heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符,其中nowdoc是PHP5.3引进的新技术,它包含了heredoc的语法,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就 是什么内容,不会解析PHP相关的内容heredoc中的PHP变量建议使用{$name->change()} 大括号括起来,这样可以避免一定的歧义,如果要原样输出可以使用传说中的转义字符 \ ,转义字符本身可以使用转义字符进行输出,即 \

Heredoc和Nowdoc

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

PHP中字符串的heredoc结构和nowdoc结构

最近在维护一个古老的PHP网站,没有前后台的分离,代码看起来很吃力,上面大段大段的HTML输出.在看的时候发现很多地方用了「<<<」这样的符号来标记字符串,好像之前学习PHP的时候,只讲了单双引号两种表示字符串的方式.今天偶然在书上看到了,这种「<<<」表示字符串的方式是heredoc和nowdoc结构. echo <<<EOT <html> <head><title>主页</title></hea