解析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 缓存函数代码
Aug 27 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
迁移PHP版本到PHP7
Feb 06 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
eclipse php wamp配置教程
Jun 30 PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP 开源AJAX框架14种
2009/08/24 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
js实现移动端轮播图
2020/12/21 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
抗洪抢险事迹材料
2014/05/06 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
MySQL详细讲解变量variables的用法
2022/06/21 MySQL
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS