自从我将我的 php 版本从 5.6 升级到 7.2 后,我的 php_errors.log 上一直存在错误:
PHP 解析错误:语法错误,意外的“?”在/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 第 500 行
500 号线:
return $factory->of($arguments[0], $arguments[1])->times($arguments[2] ?? null);
我在stackoverflow上搜索了一下,主要是服务器还在用php5.6,不过我觉得不是这个原因。平台是 Laravel 5.7,显然一切正常。
如果我从终端运行 php -v
我得到 PHP 7.2:
PHP 7.2.12-1+ubuntu16.04.1+deb.sury.org+1(cli)(内置:2018 年 11 月 12 日 09:55:12)(NTS)
版权所有 (c) 1997-2018 The PHP Group
Zend Engine v3.2.0,版权所有 (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.12-1+ubuntu16.04.1+deb.sury.org+1,版权所有 (c) 1999-2018,Zend Technologies
stackoverflow上的一些问题建议添加一个phpinfo来显示系统使用的php版本,实际上是正确的:
即使我试图禁用旧版本,服务器也说 php5.6 已经被禁用:
模块 php5.6 已经禁用
禁用 php5.6 并启动并运行 php 7.2,可能是什么原因造成的?
提前致谢。
最佳答案
出现这个问题是因为你的版本路径还是5.6设置为7.2
//在 PHP 版本之间切换
sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
sudo a2dismod php7.2
sudo a2enmod php5.6
//切换到php 7.2
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo a2dismod php5.6
sudo a2enmod php7.2
关于php - Laravel: PHP Parse error: syntax error, unexpected '?' in/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 第500行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53748977/