論理演算子を理解したい人向け
論理演算子ってなに?
論理演算子の使い方がわからない。
このような疑問に答えます。
論理演算子とは?
論理演算子とは、演算対象を論理値(true,false)として評価し、結果を論理値(true,false)で返す演算子のことです。
それでは詳しく解説していきます。
論理演算子の種類
演算子 | 例 | 名前 | 意味 |
&& またはand | 条件A && 条件B | 論理積 | 条件Aと条件Bがどちらもtrue ならばtrue を返す |
|| または or | 条件A || 条件B | 論理和 | 条件Aと条件Bのどちらかがtrue ならばtrue を返す |
xor | 条件A xor 条件B | 排他的論理和 | 条件A、条件Bのどちらかが true でかつ両方ともtrue でない場合に true |
! | !条件A | 否定 | 条件Aがfalse ならtrue を返す |
&&とand、||とorが2種類あるのは優先順位が違うためです。
基本的には&&と||を使用で良いでしょう。
優先順位については演算子の優先順位(外部リンク)を確認してください。
実際に使ってみよう
それではソースコードを確認してみましょう。
豆知識
「var_dump()」はカッコ内の情報を出力する関数です。
<?php var_dump( (10 == 10) && (20 == 20) ); //結果 bool(true) var_dump( (10 == 10) && (10 == 20) ); //結果 bool(false) var_dump( (10 == 20) || (20 == 20) ); //結果 bool(true) var_dump( (10 == 20) || (30 == 20) ); //結果 bool(false) var_dump( (10 == 10) xor (10 == 20) ); //結果 bool(true) var_dump( (10 == 10) xor (20 == 20) ); //結果 bool(false) var_dump( !(10 == 20) ); //結果 bool(true)
上から順に解説していきます。
&&の場合
var_dump( (10 == 10) && (20 == 20) ); //結果 bool(true)
左辺が(10 == 10)で正しいのでtrue、右辺が(20 == 20)で正しいのでtrueです。
両辺がtrueなので結果はtrueとなります。
var_dump( (10 == 10) && (10 == 20) ); //結果 bool(false)
左辺が(10 == 10)で正しいのでtrue、右辺が(10 == 20)で違うのでfalseです。
片方のみがtrueなので結果はfalseとなります。
||の場合
var_dump( (10 == 20) || (20 == 20) ); //結果 bool(true)
左辺が(10 == 20)なのでfalse、右辺が(20 == 20)なのでtrueです。
片方がtrueなので結果はtrueとなります。
var_dump( (10 == 20) || (30 == 20) ); //結果 bool(false)
左辺が(10 == 20)なのでfalse、右辺が(30 == 20)なのでfalseです。
両辺ともfalseなので結果はfalseとなります。
xorの場合
var_dump( (10 == 10) xor (10 == 20) ); //結果 bool(true)
左辺が(10 == 10)なのでtrue、右辺が( 10 == 20 )なのでfalseです。
片方がtrueかつ片方がfalseなのでtureとなります。
var_dump( (10 == 10) xor (20 == 20) ); //結果 bool(false)
左辺が(10 == 10)なのでtrue、右辺が(20 == 20)なのでtrueです。
両辺ともtrueなので結果はfalseとなります。
!の場合
var_dump( !(10 == 20) ); //結果 bool(true)
(10 == 20)がfalseなので結果はtrueとなります。
まとめ
論理演算子とは演算対象を論理値(true,false)として評価し、結果を論理値(true,false)で返す演算子のこと
演算子 | 例 | 名前 | 意味 |
&& またはand | 条件A && 条件B | 論理積 | 条件Aと条件Bがどちらもtrue ならばtrue を返す |
|| または or | 条件A || 条件B | 論理和 | 条件Aと条件Bのどちらかがtrue ならばtrue を返す |
xor | 条件A xor 条件B | 排他的論理和 | 条件A、条件Bのどちらかが true でかつ両方ともtrue でない場合に true |
! | !条件A | 否定 | 条件Aがfalse ならtrue を返す |
様々な場面で使用することが多いので、演算子と意味は覚えておきましょう!