Laravel 5.5:使用字符编码解析错误

时间:2018-04-04 09:32:58

标签: php laravel operators

我过了一段时间后回到Laravel项目并决定通过Voyager创建一个新用户,但收到了以下错误:

  

解析错误:解析错误   /PathToProject/ApplicationName/application/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php   在第233行

当我检查时,该行是:

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

然后,我进行了项目范围的搜索,发现了很多??的实例。

当我通过Git检查本地仓库时,代码没有这样的变化来反映这些变化。

猜测这是一个字符编码问题吗?

任何人都知道发生了什么,以及我将来如何再次避免这种情况?

1 个答案:

答案 0 :(得分:3)

?? Null合并运算符在PHP 7中引入。因此,如果您使用的是较低版本,则会引发错误。

??返回第一个操作数(如果存在且不为NULL);否则它返回第二个操作数。

所以你的表达:

$arguments[1] ?? null

相当于:

$username = $_GET['user'] ?? 'nobody';

//这相当于:

isset($arguments[1]) ? $arguments[1] : null;

因此,如果您使用较低版本,请将return语句更改为

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