答案 0 :(得分:12)
人们避免关闭的一个原因是什么?>标签是避免“标题已发送错误”由于换行符或其后的其他不可见字符?>标签
答案 1 :(得分:6)
关于这个问题真的没什么好说的。
以这样结束的PHP文件:
<php
//code
?>
实际上会使PHP向客户端发送标头,因为在关闭?>
标记之后有空格,如果突出显示代码块,您可以看到它。文件末尾的空格或换行符很容易被遗漏,很难追踪。
发送标题后,无法更改状态行或内容类型等内容。
由于文件末尾隐含了结束标记,因此您只需省略仅包含PHP代码的文件的结束标记即可。如果这样做,任何尾随空格将被视为代码中的空格,而不是内容中的空格,并将被忽略。
答案 2 :(得分:3)
省略结束标记是完全有效的。这样做的原因之一是避免可能与标题冲突的不需要的空格。
答案 3 :(得分:1)
它曾经避免在包含的文件中发送标头。例如,如果您所包含的文件包含PHP结束标记和空格字符或新行,则此文件将发送标题,您将来无法更改标题信息。
答案 4 :(得分:1)
从手册(http://www.php.net/manual/en/language.basic-syntax.instruction-separation.php):
注意:PHP块的结束标记 在文件的末尾是可选的,和 在某些情况下省略它是有帮助的 当使用include()或require()时,所以 不需要的空格不会出现在 文件的结尾,你仍然会 能够为响应添加标头 后来。如果你使用它也很方便 输出缓冲,并不喜欢 看到添加不需要的空格 由...生成的部分的结尾 包含文件。
答案 5 :(得分:0)
我通常使用结束标记,但在使用Code Igniter时已经听说过这种代码样式。我的猜测是,通过省略结束标记,您可以避免可能导致“已发送标头”错误的“空白”字符可能出现问题。