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 获取远程网页内容的函数
Sep 08 PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 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
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
php array的学习笔记
2012/05/10 PHP
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
详解vue-router 初始化时做了什么
2018/06/11 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
python检查指定文件是否存在的方法
2015/07/06 Python
Python优先队列实现方法示例
2017/09/21 Python
Python类装饰器实现方法详解
2018/12/21 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
python列表返回重复数据的下标
2020/02/10 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
.NET常见笔试题集
2012/12/01 面试题
高速铁道技术专业求职信
2014/08/09 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
python 对图片进行简单的处理
2021/06/23 Python
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL