解析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中PDO基础教程 入门级
Sep 04 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
php抓取页面的几种方法详解
Jun 17 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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
建立动态的WML站点(三)
2006/10/09 PHP
php获取网页内容方法总结
2008/12/04 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
vuejs指令详解
2017/02/07 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
在Django的模板中使用认证数据的方法
2015/07/23 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
python 堆和优先队列的使用详解
2019/03/05 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
python下载库的步骤方法
2019/10/12 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
运动会解说词200字
2014/02/06 职场文书
标准化管理实施方案
2014/02/25 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python