Symfony 5启动本地服务器遇语法错误:autoload_runtime.php第15行意外'?'
解决Symfony启动时的"unexpected '?'"语法错误
这个错误的核心原因是实际执行命令的PHP版本低于8.0——?是PHP 8.0引入的nullsafe运算符,即便你安装了PHP 8.1.17,系统里可能存在旧版本PHP,导致命令行调用的不是你预期的版本。
以下是具体排查和修复步骤:
- 确认命令行实际使用的PHP版本:打开CMD或PowerShell,执行
php -v,查看输出版本是否为8.1.17。如果显示更低版本,说明旧版本PHP在PATH中的优先级更高。 - 调整PATH环境变量顺序:
- 打开Windows「系统属性」→「高级」→「环境变量」
- 在「系统变量」中找到
Path并点击编辑 - 将PHP 8.1.17的安装路径(例如
C:\php-8.1.17)移至所有其他PHP路径的上方 - 保存设置后关闭所有命令行窗口,重新打开再执行
php -v确认版本
- 检查Composer关联的PHP版本:执行
composer diagnose,查看输出中的PHP版本是否正确。若Composer仍使用旧版本,可重新安装Composer并指定PHP 8.1的路径。 - 验证Symfony CLI的PHP版本:执行
symfony php -v,确保它指向8.1.17。若版本不符,可通过symfony local:php:list查看可用版本,再用symfony local:php:set 8.1.17设置默认版本。
另外注意:你输入的启动命令是symphony server:start,正确命令应为symfony server:start(拼写是symfony而非symphony),虽然这不是本次错误的直接原因,但需避免此类拼写问题。
内容的提问来源于stack exchange,提问作者Portyio
相关产品推荐
相关产品推荐

