php不写闭合标签的好处

yipeiwu_com5年前PHP代码库

最早这个概念是从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文件的话,应该省略?>结束标识符。

相关文章

那些年我们错过的魔术方法(Magic Methods)

PHP 对象的一个优势是可以使用魔术方法,这些方法可以不需要修改外部代码而重写一个类的默认行为,这使得PHP 语法有更少的冗余性和更具有扩展性。这些方法很好识别,他们都是以双下划线(__...

php 截取字符串并以零补齐str_pad() 函数

定义和用法 str_pad() 函数把字符串填充为指定的长度。 语法 str_pad(string,length,pad_string,pad_type)参数 描述 string 必需。...

PHP面向对象程序设计方法实例详解

本文实例分析了PHP面向对象程序设计方法。分享给大家供大家参考,具体如下: PHP5开始支持面向对象,示例如下: <?php class classna...

PHP 信号管理知识整理汇总

SIGQUIT    建立CORE文件终止进程,并且生成core文件 SIGILL     建立CORE文件&nbs...

php通过exif_read_data函数获取图片的exif信息

php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册 <?php echo "test1.jp...