首页 文章

PHP解析错误:语法错误,helpers.php中的意外'?' 233

提问于
浏览
20

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

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

233中的代码是:

return app('cache')->get($arguments[0], $arguments[1] ?? null);

但据我所知,PHP 7.0支持null合并运算符( ??

我的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

谁知道发生了什么?

4 回答

  • 36

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

  • 0

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

    • sudo a2dismod php5

    • sudo a2enmod php7.1

    • sudo service apache2 restart

    它的工作原理

  • 1

    如果您在使用命令行时遇到此错误,因为您必须使用php 7执行您尝试执行的任何操作 . 发生的事情是代码试图使用仅在php7中可用的运算符并导致语法错误 .

    如果您的计算机上已经安装了php 7,请尝试将命令行指向要使用的更高版本的php .

    export PATH=/usr/local/[php-7-folder]/bin/:$PATH
    

    以下是根据我的设置进行参考的确切位置:

    export PATH=/usr/local/php5-7.1.4-20170506-100436/bin/:$PATH
    

    实际上导致中断的运算符是“null coalesce operator”,你可以在这里阅读更多关于它的信息:

    php7 New Operators

  • 7

    如果你新升级了你的php版本,你可能会忘记重新启动你的webserver服务 .

相关问题