論理演算子
そふぃのPHP入門 >> PHP言語リファレンス >> PHPの演算子 >> 論理演算子

論理演算子

論理演算子とは

論理演算子とはTRUEやFALSEに対して論理演算を行うもので、if文などで条件分岐の判定に使われます。

どのようなものかというと、「○○かつ××」とか「○○もしくは××」ってやつです。英語で表すところの「and」や「or」って言った方がわかりやすいかも。演算子自体もそのまんま「and」や「or」があります。

演算子 名前 説明
and 論理積 両方ともTRUEの場合にTRUE $a and $b $aと$bの両方がTRUEならば・・
&& 論理積 $a && $b
or 論理和 どちらかがTRUEの場合にTRUE $a or $b $aもしくは$bのどちらかがTRUEならば・・
|| 論理和 $a || $b
xor 排他的論理和 どちらかがTRUEであり、両方ともTRUEではない場合にTRUE $a xor $b $aもしくは$bのどちらかがTRUEだけど、どっちもTRUEではないならば・・・
! 否定 FALSEの場合 !$a $aがTRUEでない(FALSE)ならば・・・

論理積と論理和の演算子が2つあるのは演算の優先順位が違うからです。優先順位の違い以外の動作は同じです。

論理積

  1. <?php
  2. $a = 1;
  3. $b = 5;
  4.  
  5. if( $a == 1 and $b == 5 ){
  6.   print "条件成立!!";
  7. }
  8. else{
  9.   print "成立しません";
  10. }
  11. //$aが1であり、$bも5であるため条件成立
  12. ?>

出力結果

条件成立!!

論理和

  1. <?php
  2. $a = 1;
  3. $b = 5;
  4.  
  5. if( $a == 1 or $b == 7 ){
  6.   print "条件成立!!";
  7. }
  8. else{
  9.   print "成立しません";
  10. }
  11. //$aが1であり、$bは7であるが片方($a)が条件を満たしているため条件成立
  12. ?>

出力結果

条件成立!!

排他的論理和

  1. <?php
  2. $a = 1;
  3. $b = 5;
  4.  
  5. if( $a == 1 xor $b == 5 ){
  6.     print "条件成立!!";
  7. }
  8. else{
  9.     print "成立しません";
  10. }
  11. //$aが1であり、$bは5であるが、両方の条件が満たされているので不成立
  12. ?>

出力結果

成立しません

否定

  1. <?php
  2. $a = 1;
  3.  
  4. if( ! $a == 1 ){
  5.     print "条件成立!!";
  6. }
  7. else{
  8.     print "成立しません";
  9. }
  10. //$aが1であるので不成立
  11. ?>

出力結果

成立しません