PHP - 論理演算
公開日:2020-12-22 更新日:2020-12-22
[PHP]
1. 説明
2つの boolean の値を、and(論理積)と or(論理和)で計算することができます。
or は、どちらかが true なら true、両方とも false なら false。
and は、両方とも true なら true、それ以外は false となります。
or
and
or の代わりに「||」、and の代わりに「&&」を使うこともできます。
優先順位の違いがありますが、どちらかに統一した方が良いと思います。
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 になります。
処理の流れとしては、まず最初に、優先順位の高い演算子から評価(計算)を行います。
上記の例の場合、各比較演算子の評価が行います。
そして、boolean になったら、論理演算を行います。
$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 となる。