IF语句中AND和OR的优先级


Precedence of AND and OR into an IF statement

这些语句等价吗?

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

编辑

真是打!但值得…THX给所有人!

答案:。它们并不等同。

查看PHP运算符优先级表。它清楚地将&&列在||之前。

请参阅此处的操作:http://viper-7.com/cPycas


如果您想使用优先级而不是括号,可以使用更详细的AND:

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

这是演示,但我建议你不要这样做,因为它不像括号那么清晰。

&&的优先级高于||,所以不,它们不等价。

否。在PHP中,($a || $b && $c)被评估为:($a || ($b && $c))

请参阅:http://php.net/manual/en/language.operators.precedence.php

AND视为乘法,将OR考虑为加法,您将获得真实性和优先级。

$a = 1; 
$b = 0;
$c = 0;
if ($a + $b * $c)
{
    // ...
}
if (($a +  $b) * $c)
{
    // ...
}

amp&优先于||。操作员优先级