解析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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
php快速导入大量数据的实例方法
Sep 23 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 PHP
PHP实现抽奖功能实例代码
Jun 30 PHP
PHP如何防止用户重复提交表单
Dec 09 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
单利模式及python实现方式详解
2018/03/20 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
妇产科护士自我鉴定
2013/10/15 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
《中华少年》教学反思
2014/02/15 职场文书
安全生产月活动总结
2014/05/04 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
部队2014年终工作总结
2014/11/27 职场文书