我一直在阅读一些关于省略关闭PHP标签的文章,因为他们说如果你的.php文件不包含任何其他东西,那么它在PHP中是一个很好的编程习惯。有很多这样的问题,但是在我尝试了他们迄今为止在我的机器上工作得很好的事情之后。也许这是一个固定的问题或什么?
但是我不太明白为什么它可以成为一个好的编程实践,因为它带来了空间或者其他东西,但我已经尝试过这个并且效果很好。
Master.php
<?php
echo "Master.php";
include "Slave.php";
header("Location:Slave.php");
?>
Slave.php
<?php
echo "Slave.php";
?>
如果我没有使用关闭php标记,我真的不明白应该是什么问题。
感谢。
答案 0 :(得分:10)
主要问题是你可以在结束?>
之后包含额外的空格(但可以是任何字符)(除了PHP允许的\n
之外,感谢Mario)。
这个额外的空格在PHP中显示为要发送的输出。这使得PHP开始发送响应主体,因此无法设置/修改任何其他标头。
这很难调试(因为空格在文本编辑器中通常是不可见的)并且通常导致可怕的标题已发送错误。
答案 1 :(得分:2)
结束标记的问题是在最后一个之后的任何空格?&gt;可能会导致错误,并且在修复bug时很难检测到。
答案 2 :(得分:0)
不通常最好以关闭PHP
标记来结束您的脚本。
在你的情况下,在?>
之后可能会留下一个空格(由于这个原因,如果出现问题,这是非常狡猾的,很难说错误在哪里),所以它将被视为输出而你不会例如,如果您正在开发网站,则可以启动会话或传递标题。
只是我的意见。我可能永远不会用结束标记结束我的脚本
答案 3 :(得分:0)
问题来自于除1之外的任何数量的换行符:如果在那一端没有换行符,一些php解析器会感到沮丧,但是如果你有多个换行符,那么它会被打印,因为php标签以外的任何东西都是考虑过HTML。
最常见的问题是库/模型文件会有额外的换行符,导致在实例化页面/视图之前很久就会发送标题。