解析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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
php 字符转义 注意事项
May 27 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
php实现简单爬虫的开发
Mar 28 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
Mar 01 PHP
Yii 框架使用Forms操作详解
May 18 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生成静态HTML速度快类库
2007/03/18 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
python 实现单例模式的5种方法
2020/09/23 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
门诊手术室工作制度
2014/01/30 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
岗位说明书范文
2014/05/07 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
2016年入党心得体会范文
2016/01/23 职场文书