PHP Parse错误:语法错误,意外'?' 在helpers.php 233中

cui*_*gda 33 laravel-5.5

当我创建一个新的Laravel项目时,浏览器显示错误500.我在日志中发现了这个:

PHP Parse错误:语法错误,意外'?' 在233行的vendor/laravel/framework/src/Illuminate/Foundation/helpers.php中

233中的代码是:

return app('cache')->get($arguments[0], $arguments[1] ?? null);
Run Code Online (Sandbox Code Playgroud)

但据我所知,??PHP 7.0支持null合并operator()

我的PHP版本:

PHP 7.1.8-2 + ubuntu14.04.1 + deb.sury.org + 4(cli)(内置:2017年8月4日14:34:05)(NTS)版权所有(c)1997-2017 PHP Group Zend Engine v3. 1.0,版权所有(c)1998-2017 Zend Technologies与Zend OPcache v7.1.8-2 + ubuntu14.04.1 + deb.sury.org + 4,版权所有(c)1999-2017,作者:Zend Technologies

Laravel版本:5.5.0

谁知道发生了什么?

rok*_*hie 44

如果我不得不猜测,我会说你只安装了PPA 7.1.8作为CLI(php7-cli).你从那里得到你的版本信息,但你的libapache2-mod-php包仍然是14.04 main,这是5.6.在浏览器中检查您的phpinfo以确认版本.您也可以考虑迁移到Ubuntu 16.04以获得主要的PHP 7.0.

  • 太棒了,刚刚在WAMP改变了我的PHP版本:D (3认同)
  • 非常感谢你,你给我带来了很多挫折感.我真的很讨厌这些服务器配置细节,它的命运几乎比死亡更糟糕. (2认同)

小智 13

我在ubuntu上遇到了与Laravel 5.5大致相同的问题,最后我在这里找到了一个解决方案,用于在apache使用的php版本之间切换:

  1. sudo a2dismod php5
  2. sudo a2enmod php7.1
  3. sudo service apache2 restart

它的工作原理