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


Posted in PHP onMarch 21, 2014

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

PHP 相关文章推荐
深入php self与$this的详解
Jun 08 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
php比较两个字符串长度的方法
Jul 13 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
php实现搜索类封装示例
Mar 31 PHP
PHP错误处理函数
Apr 03 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
CodeIgniter常用知识点小结
May 26 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
php实现微信和支付宝支付的示例代码
Aug 11 PHP
php获取表单中多个同名input元素的值
Mar 20 #PHP
php中的静态变量的基本用法
Mar 20 #PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 #PHP
php数据库备份还原类分享
Mar 20 #PHP
PHP实现微信公众平台音乐点播
Mar 20 #PHP
一个PHP针对数字的加密解密类
Mar 20 #PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 #PHP
You might like
Syphon 使用方法
2021/03/03 冲泡冲煮
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
JS继承 笔记
2011/07/13 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
python3实现随机数
2018/06/25 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
python求前n个阶乘的和实例
2020/04/02 Python
Python如何实现线程间通信
2020/07/30 Python
运动会3000米加油稿
2015/07/21 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
导游词之清晏园
2019/11/22 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript