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遍历目录viewDir函数
Dec 15 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
浅谈php命令行用法
Feb 04 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
深入浅出php socket编程
May 13 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
Python 多进程、多线程效率对比
2020/11/19 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
中国电视购物:快乐购
2017/02/04 全球购物
建筑工地大门标语
2014/06/18 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python
Redis Lua脚本实现ip限流示例
2022/07/15 Redis