0

これらのステートメントは同等ですか?

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

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

編集

何という打撃!しかし、それだけの価値はあります...すべての人にTHX!

4

5 に答える 5

2

答え:いいえ。それらは同等ではありません。

PHP Operator Precedence tableを確認してください。&&の前に明確にリストされています||

実際の動作はこちら: http://viper-7.com/cPycas


括弧の代わりに優先順位を使用したい場合は、より詳細な を使用できますAND

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

これがdemoですが、括弧ほど明確ではないため、使用しないことをお勧めします。

于 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 に答える