解析php中heredoc的使用方法


Posted in PHP onJune 17, 2013

Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程 序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。

如下:

<?php
$name = '浅水游';
print <<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body>
<!--12321-->
Hello,$name!
</body>
</html>
EOT;
?>

1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可

2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:

$v=2;
$a= <<<EOF
"abc"$v
"123"
EOF;
echo $a; //结果连同双引号一起输出:"abc"2 "123"

3.heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页。可以有两种写法。很明显第二种写法比较简单和易于阅读。
function outputhtml(){
echo "<html>";
echo "<head><title>主页</title></head>";
echo "<body>主页内容</body>";
echo "</html>;
}
function outputhtml()
{
echo <<<EOT
   <html>
   <head><title>主页</title></head>
   <body>主页内容</body>
   </html>
EOT;
}
outputhtml();
PHP 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
深入PHP5中的魔术方法详解
Jun 17 #PHP
php.ini 配置文件的深入解析
Jun 17 #PHP
解析posix与perl标准的正则表达式区别
Jun 17 #PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 #PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 #PHP
CodeIgniter图像处理类的深入解析
Jun 17 #PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 #PHP
You might like
开发大型 PHP 项目的方法
2007/01/02 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
php封装的page分页类完整实例
2016/10/18 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
激活 ActiveX 控件
2006/10/09 Javascript
javascript Math.random()随机数函数
2009/11/04 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
python selenium循环登陆网站的实现
2019/11/04 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
物流管理专业毕业生自荐信
2014/03/04 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
vue实现滑动解锁功能
2022/03/03 Vue.js