解析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 相关文章推荐
给多个地址发邮件的类
Oct 09 PHP
PHP 分页原理分析,大家可以看看
Dec 21 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
PHP源码之explode使用说明
Aug 05 PHP
PHP取进制余数函数代码
Jan 19 PHP
深入php处理整数函数的详解
Jun 09 PHP
PHP基础知识介绍
Sep 17 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
destoon首页调用求购供应信息的地区名称的方法
Aug 21 PHP
php制作的简单验证码识别代码
Jan 26 PHP
java解析json方法总结
May 16 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
一个好用的分页函数
2006/11/16 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
python fabric使用笔记
2015/05/09 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
详解python之heapq模块及排序操作
2019/04/04 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
公司培训心得体会
2014/01/03 职场文书
职业规划实施方案
2014/06/10 职场文书
2019财务毕业实习报告
2019/06/27 职场文书