0

这些陈述是等价物吗?

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

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

编辑

怎么打!但值得……谢谢大家!

4

5 回答 5

2

答案:没有。它们不是等价的。

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

在此处查看实际操作:http: //viper-7.com/cPycas


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

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

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

于 2012-09-06T18:39:41.237 回答
1

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

于 2012-09-06T18:40:34.133 回答
1

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

见: http: //php.net/manual/en/language.operators.precedence.php

于 2012-09-06T18:40:39.483 回答
1

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

$a = 1; 
$b = 0;
$c = 0;

if ($a + $b * $c)
{
    // ...
}

if (($a +  $b) * $c)
{
    // ...
}
于 2012-09-06T18:41:25.447 回答
0

&& 优先于 ||。运算符优先级

于 2012-09-06T18:43:19.330 回答