微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说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”的效率问题而实现的“高效率”的静态版本

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐