PHP - 論理演算

公開日:2020-12-22 更新日:2020-12-22
[PHP]

1. 説明

2つの boolean の値を、and(論理積)と or(論理和)で計算することができます。

or は、どちらかが true なら true、両方とも false なら false。
and は、両方とも true なら true、それ以外は false となります。

or
var_dump(false or false);
var_dump(false or true);
var_dump(true  or false);
var_dump(true  or true);
実行結果
bool(false)
bool(true)
bool(true)
bool(true)

and
var_dump(false and false);
var_dump(false and true);
var_dump(true  and false);
var_dump(true  and true);
実行結果
bool(false)
bool(false)
bool(false)
bool(true)

or の代わりに「||」、and の代わりに「&&」を使うこともできます。
優先順位の違いがありますが、どちらかに統一した方が良いと思います。
var_dump(false || true);
var_dump(true && true);
実行結果
bool(true)
bool(true)

2. 使用例

変数 $v が、5以上かつ10以下なら true になります。
$v =  0; var_dump( 10 >= $v && $v >= 5 );
$v =  7; var_dump( 10 >= $v && $v >= 5 );
$v = 15; var_dump( 10 >= $v && $v >= 5 );
実行結果
bool(false)
bool(true)
bool(false)
このように、論理演算子を使うと、複雑な比較ができるようになります。

処理の流れとしては、まず最初に、優先順位の高い演算子から評価(計算)を行います。
上記の例の場合、各比較演算子の評価が行います。
そして、boolean になったら、論理演算を行います。
(10 >= $v && $v >= 5) は、比較演算子によって、(true && true) となる。

(true && true) は、論理演算によって、true となる。