php中heredoc与nowdoc介绍

2015-01-24信息快讯网

这篇文章主要介绍了php中HEREDOC介绍,并对nowdoc以及heredoc的区别做了详细说明,推荐给有需要的小伙伴参考下。

Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。  

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();  

在heredoc中会自动替换其中的$变量,将命令和输入放在一块,方便 

附:heredoc和nowdoc的区别

heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符,其中nowdoc是PHP5.3引进的新技术,它包含了heredoc的语法,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就是什么内容,不会解析PHP相关的内容
heredoc中的PHP变量建议使用{$name->change()} 大括号括起来,这样可以避免一定的歧义,如果要原样输出可以使用传说中的转义字符 \ ,转义字符本身可以使用转义字符进行输出,即 \ 这种表示方法,大括号之类的这些都需要转义输出。
为了保证的确可用,建议使用 heredoc 的语法,本身也带有转义,因为PHP5.3才引进的nowdoc语法,很多云托管坏境很有可能不支持导致歇菜。
最后强调下,heredoc是从PHP4.0开始引进的,而nowdoc语法则需要5.3版本,因为heredoc包含了nowdoc的功能,所以个人建议还是使用heredoc比较好些。

简单来说:

1、heredoc是动态的 nowdoc是静态的
2、heredoc类似多行的双引号 newdoc类似多行的单引号
3、heredoc是一种专门处理大段字符串的通用处理方案,而nowdoc是php为了弥补动态实现“heredoc”的效率问题而实现的“高效率”的静态版本

php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
ucenter通信原理分析
php计划任务之ignore_user_abort函数实现方法
WampServer下安装多个版本的PHP、mysql、apache图文教程
PHP和Shell实现检查SAMBA与NFS Server是否存在
windows中为php安装mongodb与memcache
phpQuery让php处理html代码像jQuery一样方便
php下Memcached入门实例解析
php从memcache读取数据再批量写入mysql的方法
php利用scws实现mysql全文搜索功能的方法
php中实现xml与mysql数据相互转换的方法
推荐5款跨平台的PHP编辑器
主流PHP框架的优缺点对比分析
10个简化PHP开发的工具
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
php使用sql server验证连接数据库的方法
php使用pdo连接mssql server数据库实例
PHP扩展模块memcached长连接使用方法分析
PHP+jquery+ajax实现即时聊天功能实例
腾讯微博提示missing parameter errorcode 102 错误的解决方法
php运行提示:Fatal error Allowed memory size内存不足的解决方法
apache中为php 设置虚拟目录
phpmyadmin提示The mbstring extension is missing的解决方法
PHP缓存集成库phpFastCache用法
PHP中Memcache操作类及用法实例
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
PhpDocumentor 2安装以及生成API文档的方法
PHP中nowdoc和heredoc使用需要注意的一点
©2014-2024 dbsqp.com