0

OR または同様の演算子を使用する IF ステートメントの場合、1 つが真であることが判明した後、PHP は残りのチェックを続行しますか、それともそこで停止しますか? 例えば。

if(true == true OR a_checking_function())

両方がチェックされるのでしょうか、それとも PHP は一方だけをチェックするのでしょうか?

4

2 に答える 2

1

いいえ、最初のtrueものが見つかるとすぐに、中かっこ内のコードに直接移動します。「AND」キーワードを使用すると、2 番目の条件がチェックされます。

演算子/ロジックの優先順位を見たいと思うかもしれません。たとえば、次の条件の場合はどうなりますか?

if($a = $b AND $c = $d AND $e = $f)...
if($a = $b AND $c = $d OR $e = $f)...
if($a = $b OR $c = $d AND $e = $f)...

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

于 2013-05-28T20:18:57.933 に答える
0

これは非常に簡単にテストできます。

<?php
$count = 0;

function testCond($response=false){
    global $count;
    $count++;
    return $response;
}

if(testCond(true) || testCond(false)){
    echo "At least one was true.<br>";
}

echo "testCond() was called $count time(s).";

出力:

At least one was true.
testCond() was called 1 time(s).

http://codepad.viper-7.com/bxOiW2

テストごとに関数を呼び出し、関数がグローバル カウント変数をインクリメントするようにして、関数が呼び出された回数を取得します。

于 2013-05-28T20:26:50.790 に答える