我想这样做:
if ($field = myFunction($node, 'field') && $field['value']) {
//do something with $field
}
PHPStorm警告说&&和$&即使它刚刚设定。这只是PHPStorm是不稳定的还是有一些原因这实际上不应该工作?
答案 0 :(得分:4)
这是运营商优先权。只需查看http://docs.php.net/manual/en/language.operators.precedence.php
即可应该是:
if (($field = myFunction($node, 'field')) && $field['value']) {
//do something with $field
}
按预期工作。在这种情况下,PhpStorm不会发出警告
此类案例表明,如果您对运营订单不是100%肯定,最好总是使用括号。想象一下,如果PhpStorm在这种情况下没有警告你,并且在测试中它按预期工作,会发生什么。