解析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 和 MySQL 基础教程(二)
Oct 09 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
Oct 08 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
django 修改server端口号的方法
2018/05/14 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
python贪吃蛇游戏代码
2020/04/18 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
捐赠仪式主持词
2014/03/19 职场文书
个人委托书格式
2014/04/04 职场文书
安全目标责任书
2014/07/22 职场文书
联村联户简报
2015/07/21 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android