AND和OR优先于IF语句

时间:2012-09-06 18:37:48

标签: php if-statement logic conditional-statements

这些陈述是等同的吗?

if ($a || $b && $c)
{
    // ...
}

if (($a || $b) && $c)
{
    // ...
}

修改

真是太棒了!但值得的是...... THX给所有人!

5 个答案:

答案 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