解析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 相关文章推荐
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
Oct 29 PHP
在PHP中使用redis
Nov 04 PHP
php创建sprite
Feb 11 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
thinkphp模板的包含与渲染实例分析
Nov 26 PHP
php生成zip文件类实例
Apr 07 PHP
PHP滚动日志的代码实现
Jun 10 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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无法连接mysql数据库的正确解决方法
2016/07/01 PHP
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
python使用pymysql实现操作mysql
2016/09/13 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python装饰器使用实例详解
2019/12/14 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python Tornado框架的使用示例
2020/10/19 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
会议邀请书范文
2014/02/02 职场文书
2014年征兵标语
2014/06/20 职场文书
主题团日活动总结
2014/06/25 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
铣工实训报告
2014/11/05 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
Go语言读取txt文档的操作方法
2022/01/22 Golang