为什么在PHP中建议省略文件末尾的闭合标签`?>`?
大家好!我是一名PHP初学者,最近注意到在许多现代框架(如Laravel、Symfony)和文档中,经常建议省略PHP文件末尾的闭合标签`?>`。老实说,我不太理解为什么要这样做。因为在PHP教程中,总是展示完整的结构:
```php
```
我尝试在自己的项目中去掉`?>`,代码仍然可以运行。但我一直纠结一个问题:如果保留闭合标签,可能会出什么问题?似乎并没有发生什么严重的事情。也许这只是经验丰富的开发人员的一种怪癖?
但最近我读到,这与安全性和HTTP头有关。据说,由于`?>`之后意外出现的空格或换行,可能会导致“headers already sent”错误。我遇到过几次这种情况,但我一直以为是其他原因造成的。
请用通俗易懂的方式解释一下:闭合标签的真正问题是什么?什么时候可以保留它,什么时候必须省略?