Yii SimpleMessage.php 语法错误,意外的 '?'

Yii SimpleMessage.php syntax error, unexpected '?'

我最近对我的站点进行了 composer 更新,现在我在使用邮件程序恢复密码时遇到了一个奇怪的错误。 这是调试器所说的:

 in /home/denentza/association.denentzat.fr/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php at line 496
487488489490491492493494495496497498499500501502503504505

     *
     * @return int
     */
    public function getPriority()
    {
        list($priority) = sscanf($this->getHeaderFieldModel('X-Priority'),
            '%[1-5]'
            );

        return $priority ?? 3;
    }

    /**
     * Ask for a delivery receipt from the recipient to be sent to $addresses.
     *
     * @param array $addresses
     *
     * @return $this
     */

2. yii\base\ErrorHandler::handleFatalError()

突出显示的错误行是 return $优先级 ?? 3;

我不知道该怎么办。谢谢你的帮助。

显然是运算符“??”是避免 NULL 值 (https://wiki.php.net/rfc/isset_ternary and php 7.0.x) 的语法糖。要解决此问题,您应该升级到最新的 PHP 版本。或者,您可以更改代码,但不能保证此问题或类似问题不会出现在您正在使用的库的其他部分。

return $priority ?? 3;

您的 return 使用空合并运算符,它只适用于 PHP >=7。

要使用 php5.6 解决此问题,您应该更改为:

return isset($priority) ? $priority : 3;