我有一个在PHP 5中运行良好的代码。但是我更新了我的系统,现在我使用的是PHP 7.问题发生在每个使用or
语句的Blade代码中,而变量不是直接的从对象中读取。在这种情况下,Blade始终回显默认值。
例如:
{{$obj->customer->state->name or '-'}}
PHP 5中的结果:
Santa Catarina
PHP 7中的结果:
-
我正在使用Laravel 5.1,并且存储在DB中的所有数据对于两个结果都是相同的。有什么想法吗?
答案 0 :(得分:2)
试试这个:
{{$obj->customer->state->name ?? '-'}}
这是PHP 7中的一项新功能
http://php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op
答案 1 :(得分:0)
你应该试试这个
{{isset($obj->customer->state->name) ? $obj->customer->state->name : '-'}}