解析错误语法错误,意外? [php7.1.3]

Parse error syntax error, unexpected ? [php 7.1.3]

你好,我知道这个问题已经回答了很多,但如果我有更新版本的php,我仍然会遇到这个错误

Parse error: syntax error, unexpected "?"

这个错误来自我在 symfony 中的自动加载器。

我的作曲家 .json 和 .lock 都说 7.1.3

"require": {
        "php": "^7.1.3",`

我只是尝试获取 php 信息..但出于某种原因,这也行不通

phpinfo();
die();

这不会 return 任何东西。

这是 smyfonys index.php 错误出现在第二个和第三个 if 语句。

<?php

use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

require dirname(__DIR__).'/config/bootstrap.php';

if ($_SERVER['APP_DEBUG']) {
    umask(0000);

    Debug::enable();
}

if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
    Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}

if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
    Request::setTrustedHosts([$trustedHosts]);
}

$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

我发现,在我的 windows 电脑上 xampp 和 7.3.1 我的服务器没有问题。

我的 mac 和 MAMP 7.1.3 它不起作用.. 这个想法是 json 和 phpstorm 都设置为 7.1 所以这就是为什么我很困惑....

有什么想法吗?

谢谢。

看起来 7.1.3 的 MAMP 实际上并不是 运行 7.1.3,而是更低的东西,不支持 null coalesce 运算符。也许您可以使用 phpversion() 函数在 index.php 中输出 php 的版本。 var_dump(phpversion())

使用 Symfony 时,使用他们的要求检查器检查您的系统是否正确设置可能也很有用:https://symfony.com/doc/current/reference/requirements.html