这些陈述是等同的吗?
if ($a || $b && $c)
{
// ...
}
if (($a || $b) && $c)
{
// ...
}
修改
真是太棒了!但值得的是...... THX给所有人!
答案 0 :(得分:2)
答案:否。它们并不等同。
结帐the PHP Operator Precedence table。它会在&&
之前清楚地列出||
。
在此处查看:[{3}}
如果您想使用优先级而不是括号,可以使用更详细的AND
:
if ($a || $b AND $c)
{
// ...
}
http://viper-7.com/cPycas,但我建议你不要这样做,因为它不像括号那么清楚。
答案 1 :(得分:1)
&&
的优先级高于||
,所以不,它们不等同。
答案 2 :(得分:1)
没有。在PHP中,($a || $b && $c)
被评估为:($a || ($b && $c))
请参阅:http://php.net/manual/en/language.operators.precedence.php
答案 3 :(得分:1)
将 AND 视为乘法, OR 作为补充,您将获得真实性和优先级。
$a = 1;
$b = 0;
$c = 0;
if ($a + $b * $c)
{
// ...
}
if (($a + $b) * $c)
{
// ...
}
答案 4 :(得分:0)
&安培;&安培;优先于||。 Operator precedence