我想这样做:
if ($field = myFunction($node, 'field') && $field['value']) {
//do something with $field
}
PHPStorm警告$field在&&尽管它刚刚成型。这只是PHPStorm很脆弱,还是有一些原因,这实际上不应该工作?
操作符优先级。看看http://docs.php.net/manual/en/language.operators.precedence.php
应该是:
if (($field = myFunction($node, 'field')) && $field['value']) {
//do something with $field
}
按您的期望工作。在这个例子中,PhpStorm没有发出警告
这种情况表明,如果您不能100%确定操作顺序,最好总是使用括号。想象一下,如果PhpStorm在这种情况下没有警告你,并且在你的测试中它按预期工作,会发生什么。