PHP:在同一个if语句中分配变量并对其进行测试?

时间:2014-05-12 17:34:22

标签: php phpstorm

我想这样做:

if ($field = myFunction($node, 'field') && $field['value']) {
  //do something with $field
}

PHPStorm警告说&&和$&即使它刚刚设定。这只是PHPStorm是不稳定的还是有一些原因这实际上不应该工作?

1 个答案:

答案 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在这种情况下没有警告你,并且在测试中它按预期工作,会发生什么。

相关问题