php不写闭合标签的好处


Posted in PHP onMarch 04, 2014

最早这个概念是从Drupal中接触到的,一开始有点不习惯——为什么不写闭合标签呢?这感觉很不完美啊,对于有强迫症的人来说很不适应嘛!后来,在工作中碰到了因为标签闭合而引起的问题,才开始不写闭合标签。
参阅了一些文章,对PHP闭合标签的总结如下:
好处:如果这个是一个被别人包含的程序,没有这个结束符,可以减少很多很多问题,比如说:header, setcookie, session_start这些动作之前不能有输出,如果不小心在?> 后边加了不可见字符(多余的空格、换行符)等破坏页面显示,就会报"Header already sent"错误,不写的话不会有此问题。另,可以直接把光标移到最后,接着编程。
坏处:在dreamweaver的视图模式下,一团糟。
关于PHP闭合标签官方解释是:PHP闭合标签"?>"在PHP中对PHP的分析器是可选的。但是,如果使用闭合标签,任何由开发者,用户, 或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空白页。因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。这样有利于你确定这个文件已经结束而不是被删节的。
在Zend的代码规范中,也提到了这一点:http://framework.zend.com/manual/1.12/en/coding-standard.php-file-formatting.html
代码示例:
不当的:

<?php
echo "Here's my code!";
?>

适当的:
<?php
echo "Here's my code!";
/* End of file myfile.php */
/* Location: ./system/modules/mymodule/myfile.php */

因此,如果是纯php code文件的话,应该省略?>结束标识符。

PHP 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
深入分析PHP引用(&amp;)
Sep 04 PHP
php生成html文件方法总结
Dec 01 PHP
php格式化金额函数分享
Feb 02 PHP
php中memcache 基本操作实例
May 17 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
php查询内存信息操作示例
May 09 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 #PHP
PHP中is_file不能替代file_exists的理由
Mar 04 #PHP
php获取目标函数执行时间示例
Mar 04 #PHP
PHP代码优化的53个细节
Mar 03 #PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 #PHP
PHP根据IP判断地区名信息的示例代码
Mar 03 #PHP
使用php清除bom示例
Mar 03 #PHP
You might like
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
Python 深入理解yield
2008/09/06 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python 类的继承实例详解
2017/03/25 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Django URL参数Template反向解析
2020/11/24 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
JAVA和C++区别都有哪些
2015/03/30 面试题
孝老爱亲模范事迹
2014/01/24 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2015年春节标语口号
2014/12/09 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
五一劳动节慰问信
2015/02/14 职场文书
试用期自我评价范文
2015/03/10 职场文书
房地产项目合作意向书
2015/05/08 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
机器人瓦力观后感
2015/06/12 职场文书
活动简报范文
2015/07/22 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python