php中heredoc与nowdoc的区别
来源:互联网 发布:java枚举类型定义常量 编辑:程序博客网 时间:2024/05/21 11:01
一、heredoc结构及用法
二、nowdoc结构及用法
在 PHP 5.3.0 及其以后的版本中增加了nowdoc结构,其用法和heredoc相同,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就是什么内容,不会解析PHP相关的内容。
不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。
一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。
三、总结:
1、 heredoc是从PHP4.0开始引进的,而nowdoc语法则需要5.3版本。
2、heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符。
3、heredoc是动态的 ,nowdoc是静态的。
4、heredoc类似多行的双引号, newdoc类似多行的单引号
5、heredoc是一种专门处理大段字符串的通用处理方案,而nowdoc是php为了弥补动态实现“heredoc”的效率问题而实现的“高效率”的静态版本。
6、最后强调一下,因为PHP5.3才引进的nowdoc语法,很多云托管坏境很有可能不支持导致程序崩溃。而且heredoc包含了nowdoc的功能,所以个人建议还是使用heredoc比较好些。
Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义。其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。其对格式化输出内容时,比较有用 。具体其有以下特点:
1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。
2、开始标记后不能出现空格或多余的字符。
3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。
5. 在heredoc中,变量不需要用连接符.或,来拼接 。
heredoc中的PHP变量建议使用{$name->change()} 大括号括起来,这样可以避免一定的歧义,如果要原样输出可以使用传说中的转义字符 \ ,转义字符本身可以使用转义字符进行输出,即 \ 这种表示方法,大括号之类的这些都需要转义输出。示例如下:
$this->html = <<<EOT <div id="master-carousel" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#master-carousel" data-slide-to="0" class="active"></li> <li data-target="#master-carousel" data-slide-to="1"></li> <li data-target="#master-carousel" data-slide-to="2"></li> </ol> <div class="carousel-inner" role="listbox"> {$str} </div> <a class="left carousel-control" href="#master-carousel" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#master-carousel" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> <span class="sr-only">Next</span> </a> </div> <style> .carousel-control{ display:none; } .carousel-indicators li { background-color:rgba(86, 61, 24, 0); border: 1px solid #563d7c; } .carousel-indicators li.active { background-color: #FFF; } </style> <script> $('#master-carousel').carousel({ //interval:3000, interval:false, wrap:true }); </script>EOT;
二、nowdoc结构及用法
在 PHP 5.3.0 及其以后的版本中增加了nowdoc结构,其用法和heredoc相同,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就是什么内容,不会解析PHP相关的内容。
不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。
一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。
三、总结:
1、 heredoc是从PHP4.0开始引进的,而nowdoc语法则需要5.3版本。
2、heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符。
3、heredoc是动态的 ,nowdoc是静态的。
4、heredoc类似多行的双引号, newdoc类似多行的单引号
5、heredoc是一种专门处理大段字符串的通用处理方案,而nowdoc是php为了弥补动态实现“heredoc”的效率问题而实现的“高效率”的静态版本。
6、最后强调一下,因为PHP5.3才引进的nowdoc语法,很多云托管坏境很有可能不支持导致程序崩溃。而且heredoc包含了nowdoc的功能,所以个人建议还是使用heredoc比较好些。
阅读全文
0 0
- php中heredoc与nowdoc的区别
- php中heredoc与nowdoc的区别
- php 中的heredoc与nowdoc的区别
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- Php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php heredoc 与 nowdoc
- php heredoc 与 nowdoc
- heredoc和nowdoc的区别
- PHP中字符串的heredoc结构和nowdoc结构
- php中heredoc和nowdoc的用法,少写echo
- PHP+Tp5中heredoc和nowdoc解析
- 界定符heredoc和nowdoc的区别
- heredoc与nowdoc
- Testlink+Mantis集成环境配置
- 智能指针
- 机器学习——BP神经网络算法
- iOS关于在UITableView中,实现多个cell中不同的倒计时实现
- vim设置
- php中heredoc与nowdoc的区别
- Cookie
- FILE对象线程安全
- 32位与64位的区别
- Mysql 还原大备份mysql文件失败的解决方法
- 其他-javascript获取表单的信息并用ajax提交
- 欢聚时代2017校招笔试题目(JAVA基础类)A卷--5
- 把firefox的新建标签页设置成主页
- 学习笔记之面向对象编程14(容器)