表 15-7. 論理演算子
例 | 名前 | 結果 |
---|
$a and $b | 論理積 | $a および $b が共に TRUE の場合に TRUE |
$a or $b | 論理和 | $a または $b のどちらかが TRUE の場合に TRUE |
$a xor $b | 排他的論理和 |
$a または $b のどちらかが TRUE でかつ両方とも TRUE でない場合に TRUE
|
! $a | 否定 | $a が TRUE でない場合 TRUE |
$a && $b | 論理積 | $a および $b が共に TRUE の場合に TRUE |
$a || $b | 論理和 | $a または $b のどちらかが TRUE の場合に TRUE |
"and" および "or" 演算子が 2 種類あるのは、演算が行われる際の優先順位が
異なっているためです
(演算子の優先順位
を参照ください)。
例 15-6. 論理演算子についての説明
<?php
// foo() は決してコールされることはありません。これらの演算子は短絡評価を行うからです。 $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo());
// "||" の優先順位は "or" より高くなります $e = false || true; // $e に代入されるのは、(false || true) の評価結果、つまり true です $f = false or true; // $f には false が代入されます var_dump($e, $f);
// "&&" の優先順位は "and" より高くなります $g = true && false; // $g に代入されるのは、(true && false) の評価結果、つまり false です $h = true and false; // $h には true が代入されます var_dump($g, $h);
|
上の例の出力は、たとえば
以下のようになります。 bool(true)
bool(false)
bool(false)
bool(true) |
|