PHP语法检查失效主因是php.validate.executablePath未正确配置或PHP CLI未加入PATH;需通过终端验证php --version和which php/where php,再在VS Code中手动设置绝对路径并重启。
PHP 语法检查在 VS Code 中不生效,大概率不是插件没装,而是 php.validate.executablePath 没配对,或者 PHP CLI 根本没进系统 PATH。
VS Code 的 PHP 验证依赖本地安装的 PHP 可执行文件。如果终端里运行 php --version 报错或无响应,那 VS Code 肯定也调不动它。
which php(macOS/Linux)或 where php(Windows)/opt/homebrew/bin/php(Apple Silicon)或 /usr/local/bin/php(Intel)C:\xampp\php\php.exe 或 C:\php\php.exe
php.validate.executablePath
VS Code 默认会尝试从 PATH 找 php,但多数失效场景都是它找不到——必须手动指定绝对路径。
Cmd+, 或 Ctrl+,),搜索 php validate executable
PHP > Validate: Executable Path
/opt/homebrew/bin/php 或 C:\xampp\php\php.exe
.exe 后缀,且反斜杠要双写或改用正斜杠(C:/xampp/php/php.exe 更稳妥)官方 PHP 插件(PHP Intelephense 或 PHP Server)和旧版 PHP Extension Pack 可能互相压制验证功能。
立即学习“PHP免费学习笔记(深入)”;
Intelephense,它自带语法检查,比原生 php.validate 更准)php.validate.enable 设为 true),请确保没同时开启 intelephense.diagnostics.enable,否则报错会重复或覆盖php.validate.enable 是否为 true(默认是 true,但可能被 workspace 设置覆盖).php 文件,状态栏右下角应显示 PHP 版本号;若显示“PHP (disabled)”或空白,说明验证链断了别只看有没有红波浪线——有些错误(比如未定义变量)默认不报,得靠实际触发语法错误来测。
Parse error 类提示Cmd+Shift+P),运行 Developer: Toggle Developer Tools,切换到 Console 标签页,看是否有类似 Failed to spawn PHP process 的报错php.validate
.run 为 onType(默认是 onSave),让错误实时浮现最常被忽略的一点:VS Code 工作区(.vscode/settings.json)里的 php.validate.executablePath 会覆盖全局设置,而且路径写错不会报错,只会静默失效。建议先清空 workspace 设置,用全局路径验证通了再逐步加回本地配置。