私の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に関するいくつかの質問は、システムで使用されているphpのバージョンを表示するためにphpinfoを追加することを提案しており、実際には正しいです:
古いバージョンを無効にしようとした場合でも、サーバーはphp5.6がすでに無効になっていると言っています。
_Module php5.6 already disabled
_
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