解析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 相关文章推荐
一个php作的文本留言本的例子(六)
Oct 09 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
php微信开发接入
Aug 27 PHP
php的4种常用运行方式详解
Dec 22 PHP
常用PHP封装分页工具类
Jan 14 PHP
Laravel框架集合用法实例浅析
May 14 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 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一些公用函数的集合
2008/03/27 PHP
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
php模板函数 正则实现代码
2012/10/15 PHP
php 类自动载入的方法
2015/06/03 PHP
JavaScript 事件的一些重要说明
2009/10/25 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
在django中,关于session的通用设置方法
2019/08/06 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
运动会稿件200字
2014/02/07 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
运动会通讯稿100字
2015/07/20 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
Win11查看设备管理器
2022/04/19 数码科技