soarli

PHP结尾问号尖括号的写与不写的区别
前言最近发现PHP Intelephense插件喜欢自动去掉PHP文件结尾的?>符号,看着很不美观。经过在网...
扫描右侧二维码阅读全文
23
2022/01

PHP结尾问号尖括号的写与不写的区别

前言

最近发现PHP Intelephense插件喜欢自动去掉PHP文件结尾的?>符号,看着很不美观。

经过在网上查询,知道了该符号写于不写有以下区别。

区别

加结尾的:之后的内容视为 纯文本直接输出,直到再次碰到 <?<?php;

不加的:之后的内容视为 PHP 代码,除非没有代码了;

对于一些函数库/类库文件,不加结尾比较好,当它们被其他文件包含的时候,可以避免一些因为有输出而导致的错误,例如以下代码:

<?PHP
//如果 a.php 有结尾,并且后面多一个回车或空格。下面这行一定报错。
include("a.php");
session_start():
?>

不加结尾还有个好处,如果服务器被病毒感染,病毒可能会在你的 PHP 文件最后加上 HTML

例如:

<img src="他的带毒地址" />

如果不加结尾的话,等效于直接在 PHP 文件里书写 HTMLPHP 报错运行中断从而确保访客不会因为这个而中毒,网站管理员也能马上发现染毒了。

此外,不添加结尾还可以防止结束符后面还有其它不可见字符而会导致文件互相包含时出现问题。

参考资料:

https://www.v2ex.com/t/210047

https://blog.csdn.net/chengjianghao/article/details/100078052

最后修改:2022 年 01 月 23 日 07 : 23 PM

发表评论