我已经安装了Laravel 5.5,但遇到了同样的错误,文档说明如下:
我跑了:
$ php artisan --version`
$ Laravel Framework 5.5.42
我收到此错误:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_PARSE)
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE)
文档是否错误?我正在使用:https://laravel.com/docs/5.5/installation#installing-laravel 我的服务器只能使用PHP 7.0。不是7.1。无法再在7上运行Laravel吗?
我正在通过作曲家进行安装。
是否可以下载与7.0兼容的版本?
答案 0 :(得分:1)
如果您使用的是PHP 5.5(实际上是5.5.9或更高版本),则应使用Laravel 5.2。
如果您使用的是PHP 7.0,则可以使用Laravel 5.5。
您提到的错误是因为您正在使用不支持PHP 7 Null合并运算符(??)的PHP 5.5,并且正在Laravel代码中的某处使用它。
正如您所说的服务器支持PHP 7.0一样,您的系统上可能安装了多个PHP版本。检查运行php --version
的PHP版本。
答案 1 :(得分:0)
问题可能是PHP的命令行版本不同于PHP的Apache版本。运行php --version
并确认您使用的是PHP 7.0.0或更高版本。
Laravel 5.5。*在PHP 7.0。*上运行没有问题。我目前有一个在PHP 7.0.15上运行Laravel 5.5.43的项目,并且不会发生此问题。
如果PHP的命令行版本不是最新的,或者您可以访问PHP的多个版本,则应与主机提供商联系以寻求帮助。您也许还可以运行类似于以下命令,以查看是否可以访问其他版本的PHP:
locate bin/php
以上内容可能使您对安装位置有所了解。例如,我看到安装了三个不同版本的PHP,但是默认版本(/usr/bin/php
)是7.0.15:
/opt/cpanel/ea-php56/root/usr/bin/php
/opt/cpanel/ea-php70/root/usr/bin/php
/opt/cpanel/ea-php71/root/usr/bin/php
/usr/bin/php
答案 2 :(得分:0)
这是Symfony Translation堆栈的问题,我暂时必须禁用它,而且我已经降低了碳包装的等级以使其正常工作,不确定为什么。它具有一些php7.1代码。