欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP中nowdoc和heredoc使用需要注意的一点

程序员文章站 2023-11-11 19:39:58
最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说eof前面不能有空格,而为了代码缩进,正好产生了这样的问题.复制代码 代码如下:$str = <...

最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说eof前面不能有空格,而为了代码缩进,正好产生了这样的问题.

复制代码 代码如下:

$str = <<<'eod'
example of string
spanning multiple lines
using nowdoc syntax.
eod;//eod一定要靠近前面,不能有空格,同时不要漏掉结束符分号;


附: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”的效率问题而实现的“高效率”的静态版本