web-dev-qa-db-ja.com

Laravel:PHP解析エラー:構文エラー、予期しない「?」/ 500行の/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php

私の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を追加することを提案しており、実際には正しいです:

php info from my platform

古いバージョンを無効にしようとした場合でも、サーバーはphp5.6がすでに無効になっていると言っています。

_Module php5.6 already disabled_

Php5.6を無効にしてphp 7.2を実行すると、何が原因でしょうか?

前もって感謝します。

4
Ricardo Santos

この問題は、バージョンパスが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

6
Pawan Kumar