5分で理解【PHP入門】演算子 | 論理演算子(&&,||,xor,!)とは?

logical-operator-image PHP
スポンサーリンク

論理演算子を理解したい人向け
論理演算子ってなに?
論理演算子の使い方がわからない。

このような疑問に答えます。

論理演算子とは?

論理演算子とは、演算対象を論理値(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()」はカッコ内の情報を出力する関数です。

上から順に解説していきます。

&&の場合

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を返す

様々な場面で使用することが多いので、演算子と意味は覚えておきましょう!

タイトルとURLをコピーしました