OR または同様の演算子を使用する IF ステートメントの場合、1 つが真であることが判明した後、PHP は残りのチェックを続行しますか、それともそこで停止しますか? 例えば。
if(true == true OR a_checking_function())
両方がチェックされるのでしょうか、それとも PHP は一方だけをチェックするのでしょうか?
OR または同様の演算子を使用する IF ステートメントの場合、1 つが真であることが判明した後、PHP は残りのチェックを続行しますか、それともそこで停止しますか? 例えば。
if(true == true OR a_checking_function())
両方がチェックされるのでしょうか、それとも PHP は一方だけをチェックするのでしょうか?
いいえ、最初の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)...
これは非常に簡単にテストできます。
<?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
テストごとに関数を呼び出し、関数がグローバル カウント変数をインクリメントするようにして、関数が呼び出された回数を取得します。