我过了一段时间后回到Laravel项目并决定通过Voyager创建一个新用户,但收到了以下错误:
解析错误:解析错误 /PathToProject/ApplicationName/application/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 在第233行
当我检查时,该行是:
return app('cache')->get($arguments[0], $arguments[1] ?? null);
然后,我进行了项目范围的搜索,发现了很多??
的实例。
当我通过Git检查本地仓库时,代码没有这样的变化来反映这些变化。
我猜测这是一个字符编码问题吗?
任何人都知道发生了什么,以及我将来如何再次避免这种情况?
答案 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);