PHP 默认关闭短标签
PHP 默认关闭短标签 ,开启后才能使用 ... ?>(注意不是 =),但必须确认你的环境允许且团队/框架无冲突。
直接运行 phpinfo(),搜索 short_open_tag 项,看值是否为 On;或用命令行快速验证:
php -r "echoini_get('short_open_tag') ? 'enabled' : 'disabled';"
返回 disabled 表示未启用。该设置属于 PHP 核心配置,不能在脚本里用 ini_set() 动态修改。
找到你实际生效的 php.ini 文件(php --ini 可查路径),编辑并确保这一行存在且未被注释:
short_open_tag = On
常见疏漏点:
php.ini,需分别确认php-fpm 进程,仅 reload 不生效= 是“短回显标签”,从 PHP 5.4 起默认始终开启,无需配置 short_open_tag。绝大多数场景下应优先用它代替 :
echo $name; ?> = $name ?>
前者依赖 short_open_tag,后者永远可用。现代框架(Laravel、Symfony)和模板引擎(Twig、Blade)也基本不依赖纯 ,强行开启反而增加迁移和部署风险。
如果 PHP 文件里含 XML 声明(如 ),而 short_open_tag = On,PHP 会把 当作 PHP 开始标记,导致解析错误或空白输出。此时要么关掉短标签,要么把 XML 声明写成字符串输出:
echo '';
这个细节在生成 RSS、SVG 或配置文件时容易被忽略,调试时看到意外的解析失败,第一反应该查这里。