解析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
cache_lite试用
Feb 14 PHP
php将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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数据浏览器
2007/03/11 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
php使用百度天气接口示例
2014/04/22 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
王纯业的Python学习笔记 下载
2007/02/10 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
利用python实现汉诺塔游戏
2021/03/01 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
岗位职责范本
2013/11/23 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
中学生自我评价范文
2015/03/03 职场文书
2014年度个人总结范文
2015/03/09 职场文书
教师教育心得体会
2016/01/19 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
Nginx报404错误的详细解决方法
2022/07/23 Servers