解析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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
转PHP手册及PHP编程标准
Dec 17 PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
常见的PHP五种设计模式小结
Mar 23 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
php中的观察者模式简单实例
Jan 20 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
如何重写Laravel异常处理类详解
Dec 20 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 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遍历数组的几种方法
2012/03/22 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
二级域名转向类
2006/11/09 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
angular.element方法汇总
2015/01/07 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
分享python数据统计的一些小技巧
2016/07/21 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
Sanic框架配置操作分析
2018/07/17 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python生成词云的实现代码
2020/01/14 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
模具专业毕业推荐信
2014/03/08 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
工作收入证明模板
2014/10/10 职场文书
开幕式邀请函
2015/01/31 职场文书
会计岗位职责范本
2015/04/02 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript