解析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水印
Mar 16 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 PHP
php生成gif动画的方法
Nov 05 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
Lumen timezone 时区设置方法(慢了8个小时)
Jan 20 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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多个文件及图片上传实例详解
2014/11/10 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
php实现简单爬虫的开发
2016/03/28 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
JS实现鼠标滑过显示边框的菜单效果
2016/09/21 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python函数返回值实例分析
2015/06/08 Python
Python解析json文件相关知识学习
2016/03/01 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
工作中个人的自我评价
2013/12/31 职场文书
医院总经理岗位职责
2014/02/04 职场文书
婚礼司仪主持词
2014/03/14 职场文书
党的群众路线学习材料
2014/05/16 职场文书
反腐倡廉标语
2014/06/24 职场文书
争做文明公民倡议书
2019/06/24 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
解析MySQL索引的作用
2022/03/03 MySQL