我遇到了一个教程(如果我可以添加一个有信誉的教程),其中省略了关闭的php标记?>
。这让我想起了之前的一个教程,其中作者说它实际上更好不来关闭标签,但没有解释原因。我有点惊讶,我认为关闭标签是更好的做法。为什么最好不要关闭它,只是一直或仅在特殊情况下。
答案 0 :(得分:17)
因为最终结束标记之后的任何空格都可能导致脚本无提示失败,或导致不需要的输出发送到浏览器。 Zend Framework等一些框架已将omitting the final closing标记作为推荐做法合并到应用程序开发人员使用ZF来帮助避免此类情况,并将要求作为要求他们的编码标准:
对于仅包含PHP代码的文件, 结束标记(“?>”)永远不会 允许的。 PHP不要求它, 并省略它'防止 意外注入尾随白色 空间进入响应。
尽管如此,省略关闭标签对于一个尚未解决根本原因的问题来说是一个很好的解决方法。 This blog post断言也一样。
答案 1 :(得分:4)
好吧,如果你有一个像config.php这样的包含文件,并且你不希望它输出任何字符,因为它并不意味着你或者你不想触发“已发送的标题”你可以关闭结束标记确保没有空格发送到浏览器。您会发现纯PHP 且不包含任何要输出的内容的文件通常不包含结束标记。
最重要的是,您不希望在设置任何标头之前先注入内容。这是深入探讨的here。
答案 2 :(得分:2)
除了其他很好的答案之外,我还要注意这种做法主要用于只包含PHP代码的文件。
我在编辑模板/视图时总是关闭最后一个标记,所以当我在该点之下添加其他内容时,我不必这样做。