【发布时间】:2017-07-27 21:59:11
【问题描述】:
...
elseif ($notes = json_decode($op->notes) && isset($notes->newSet)){
// $notes = json_decode($op->notes);
$set = \App\Set::find($notes->newSet);
$setTitle = $set->title;
}
...
上面的elseif 语句针对$set = \App\Set::find($notes->newSet) 行生成错误Trying to get property of non-object
通过这个elseif块应该意味着$notes被赋值在elseif中并且找到了$notes->newSet的值。
不知道为什么上面的 sn-p 不起作用!仅当我取消注释 // $notes = json_decode($op->notes);
PHP版本为7.0.18
【问题讨论】:
-
提示:运算符优先级。
-
@zerkms:让我想了一会儿,但是是的。
-
@zerkms 这意味着这两个条件被评估为
true。那么$notes->newSet是如何设置的呢?! -
@SaidbakR 请阅读答案。您的表达式被评估为
$notes = ( json_decode($op->notes) && isset($notes->newSet) )。没有两个条件,只有一个作业。