heredoc和nowdoc的区别

heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< ‘EOT‘ 这样的标示符,其中nowdoc是PHP5.3引进的新技术,它包含了heredoc的语法,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就 是什么内容,不会解析PHP相关的内容
heredoc中的PHP变量建议使用{$name->change()} 大括号括起来,这样可以避免一定的歧义,如果要原样输出可以使用传说中的转义字符 \ ,转义字符本身可以使用转义字符进行输出,即 \ 这种表示方法,大括号之类的这些都需要转义输出。
为了保证的确可用,建议使用 heredoc 的语法,本身也带有转义,因为PHP5.3才引进的nowdoc语法,很多云托管坏境很有可能不支持导致歇菜。
最后强调下,heredoc是从PHP4.0开始引进的,而nowdoc语法则需要5.3版本,因为heredoc包含了nowdoc的功能,所以个人建议还是使用heredoc比较好些。

简单来说:
1、heredoc是动态的 nowdoc是静态的
2、heredoc类似多行的双引号 newdoc类似多行的单引号
3、heredoc是一种专门处理大段字符串的通用处理方案,而nowdoc是php为了弥补动态实现“heredoc”的效率问题而实现的“高效率”的静态版本

时间: 2024-10-08 10:27:45

heredoc和nowdoc的区别的相关文章

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,二者用于插入大量类似HTML或XML文件,heredoc如下: <?php $str = <<<THE_XML <animals> <type>dog</type> <name>snoopy</name> </animals> THE_XML; echo $str; ?> 请注意:作为结束的THE_XML;和开始&l

php中heredoc与nowdoc的使用方法

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

php heredoc 与 nowdoc

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

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

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

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语法是<<<后的标识符不加引号/加

Heredoc和Nowdoc

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

什么是PHP中的heredoc和nowdoc

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

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

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