解析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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
用Php实现链结人气统计
Oct 09 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
Jun 26 PHP
php身份证号码检查类实例
Jun 18 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
Docker搭建自己的PHP开发环境
Feb 24 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
推荐一篇入门级的Class文章
2007/03/19 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python3 中文文件读写方法
2018/01/23 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Django model select的多种用法详解
2019/07/16 Python
安装docker-compose的两种最简方法
2019/07/30 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Python日志syslog使用原理详解
2020/02/18 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
浅析python中的del用法
2020/09/02 Python
Python中qutip用法示例详解
2020/10/02 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
社团活动总结书
2014/06/27 职场文书
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL