【发布时间】:2011-08-07 18:55:18
【问题描述】:
我在一个 PHP 框架(我不记得是哪个)中看到他们没有关闭页面底部的 php 标记 (?>)。
为什么会这样,我也应该这样做吗?
【问题讨论】:
-
至少 Laravel 建议你这样做。
标签: php
我在一个 PHP 框架(我不记得是哪个)中看到他们没有关闭页面底部的 php 标记 (?>)。
为什么会这样,我也应该这样做吗?
【问题讨论】:
标签: php
基本上这意味着 PHP 文件不会有尾随空格。
如果你包含一个带有尾随空格的文件并尝试设置 header() 或 cookie 或类似的东西,那么尾随空格会导致问题。
【讨论】:
我个人不喜欢这样做,因为它在过去造成了一些意想不到的麻烦。如果您在结束标记后有空格,它可能会导致一些很难调试的问题(例如将此空格输出到浏览器,如果您正在解析 XML,这会令人不快)。
【讨论】:
你看到的框架很可能是Zend Framework。来自their manual的代码风格部分:
对于只包含 PHP 代码的文件, 结束标签 ("?>") 永远不会 允许。 PHP不需要它, 并省略它可以防止 意外注入尾随白色 响应空间。
【讨论】:
如果是包含 no HTML 的 PHP 文件,则不要关闭标签。
这可以防止您在文件末尾意外添加空格,从而调用浏览器输出和扩展标题等,这可能会导致痛苦。
【讨论】:
您不必这样做,只要它也是该脚本的结尾即可。
在文件末尾添加?> 没有任何作用,它只是在文件大小中添加了几个字节。
【讨论】: