Laravel:PHP 解析错误:语法错误,意外的“?” 在第 500 行的 /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php

Ric*_*tos 4 php ubuntu laravel

由于我将我的 php 版本从 5.6 升级到 7.2,我的 php_errors.log 上有一个持久性错误: PHP Parse error: syntax error, unexpected '?' in /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 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) (built: Nov 12 2018 09:55:12)(NTS) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.12-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

stackoverflow上的一些问题建议添加一个phpinfo来显示系统使用的php版本,其实是正确的:

来自我平台的 php 信息

即使我试图禁用旧版本,服务器也说 php5.6 已经被禁用:

Module php5.6 already disabled

禁用 php5.6 并启动并运行 php 7.2,这可能是什么原因造成的?

提前致谢。

Paw*_*mar 8

出现这个问题是因为你的版本路径还是 5.6 设置为 7.2

//在PHP版本之间切换

须藤更新替代品 --set php /usr/bin/php5.6

须藤更新替代品 --set phar /usr/bin/phar5.6

sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6

须藤 a2dismod php7.2

须藤 a2enmod php5.6

//切换到php 7.2

须藤更新替代品 --set php /usr/bin/php7.2

须藤更新替代品 --set phar /usr/bin/phar7.2

sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2

须藤 a2dismod php5.6

须藤 a2enmod php7.2