PHPの比較演算子、論理演算子について解説します。
比較演算子、論理演算子はif文などの条件分岐で使用されます。
日本語だけだと何だかわからないと思いますが、
- 比較演算子は「==、!=、<、>」
- 論理演算子は「&&、||」
のことです。
何かとソースコードのif文で使っているのを見たことあると思います。
今回は、この比較演算子、論理演算子について解説します。
それでは行きましょう!
目次
比較演算子
比較演算子はif文などの条件分岐で「$x == $y」のように2つの値や変数を比較するために使用する演算子です。
プログラミングでは「=」のイコール1つだと変数へ代入となりますので、同じかどうか比較するには「==」のイコール2つで記述します。
比較演算子の一覧
「==」の他にも「異なる、より大きい・より小さい、以上・以下」の比較方法がありますので、次の一覧にまとめました。
演算子 | 使い方 | 意味 |
---|---|---|
== | $x == $y | $x と $y の値は同じ |
=== | $x === $y | $x と $y の値と型の両方とも同じ |
!= | $x != $y | $x と $y の値が異なる |
<> | $x <> $y | $x と $y の値が異なる(!=と同じ判定) |
!== | $x !== $y | $x と $y の値または型が異なる |
> | $x > $y | $x は $y より大きい |
>= | $x >= $y | $x は $y 以上 |
< | $x < $y | $x は $y より小さい |
<= | $x <= $y | $x は $y 以下 |
色んな比較演算子がありますね。
次は実際にソースコードに書いてみます。
比較演算子を使ってみる
ほんの一部ですが、「!=、<」の2つをピックアップして使ってみました。
if文の条件が一致したときだけ文字を表示するようにソースコードを書いています。
<?php $x = 10; $y = 20; if ($x != $y) { echo '$x と $y の値が異なる<br>'; } if ($x < $y) { echo '$x は $y より小さい<br>'; } ?>
実行結果:

「!=、<」どちらも条件に一致したので、文字が表示されました。
このように2つの変数を比較することができます。
「==」と「===」の違い
一覧の中でひそかに「===、!==」が紛れ込んでましたが、「==」と何が違うのでしょうか?
それは「===」のイコール3つの場合は型が同じかどうかまで比較します。
PHPは値によって変数の型が変わってしまうので、型までチェックできる比較演算子が用意されています。(C言語やJava言語を知っている人は「何これ?」と思うかもしれないです。)
<?php $x = "10"; $y = 10; if ($x == $y) { echo '$x == $y の値は同じ<br>'; } else { echo '$x == $y の値が異なる<br>'; } if ($x === $y) { echo '$x === $y は値と型の両方とも同じ<br>'; } else { echo '$x === $y は値または型が異なる<br>'; } ?>
$x には文字列「”10″」を、$y には数値「10」をそれぞれ変数に入れて比較します。

「==」の場合は、「10」の値だけを比較をしているので同じと判定されますが、
「===」の場合は、 $x は文字列、 $y は数値で型が異なるのでFalseの方に判定されました。
このように、値と型の両方を厳密に比較したい場合に使いましょう。
論理演算子
論理演算子は、複数の条件を組み合わせたいときに使用します。
論理演算子の一覧
論理演算子の一覧をまとめました。
「&&、and」と書いてありますが、「if ($x && $y)、if ($x and $y)」のどちらでもOKです。
演算子 | 使い方 | 意味 |
---|---|---|
&&、and | $x && $y | $x と $y は両方とも true の時 true |
||、or | $x || $y | $x と $y の少なくとも1つが true の時 true |
!、not | !$x | $x が trueの時 false、 false の時 true |
論理演算子の判定イメージ(ベン図)
一覧の意味を見てもよくわからないと思いますので、ベン図というイメージを使って解説します。
論理演算子の判定イメージは「ベン図」を見るとわかりやすいです。
基本情報技術者試験などの参考書によく出てくるやつです。
&&、and
xとyの円がちょうど重なった青色の部分であるかを判定します。
xとyの両方が true の時 true となります。

|| 、or
xとyの円自体であるか判定します。
x と y の少なくとも1つが true の時 true となります。

!、not
xの円ではない部分であるか判定します。
x が true の時 false となり、x が false の時 true に判定が反転します。

論理演算子を使ってみる
if文を使って論理演算子の判定をしてみます。
<?php $x = true; $y = false; // and if ($x && $y) { echo 'x, y は両方とも true<br>'; } else { echo 'x, y は両方 true ではない<br>'; } // or if ($x || $y) { echo 'x, y の少なくとも1つが true<br>'; } else { echo 'x, y は両方とも false<br>'; } // not if (!$x) { echo 'x に入ってる値は false<br>'; } else { echo 'x に入ってる値は true<br>'; } ?>
$x には true を、$y には false を入れて「&&、||、!」を判定するソースコードを書いてみました。

&&の判定は「false」、||の判定は「true」、!の判定は「true」となりました。
上記のようにboolean型単体の判定は、実際の現場ではフラグ判定によく使ったりします。例えば「メール送信フラグで、2回目以降はメール送信しない」など。
boolean型以外では比較演算子と組み合わせて使ったりします。
次で解説します。
比較演算子、論理演算子をif文で使ってみる(組み合わせ)
最後に、
これまで論理演算子だけの判定について解説しましたが、比較演算子と組み合わせを紹介します。
<?php $x = 10; $y = 20; if ($x != $y && $x < 100) { echo '$x は $y とは値が異なり、かつ100より小さい'; } ?>
実行結果:

$x を中心にif文で判定しました。
$x は $y と同じで、100より小さいかの複数の比較条件で判定しています。
まとめ
PHPの比較演算子、論理演算子について次の内容を解説しました。
- 比較演算子(一覧、使い方、「===」について)
- 論理演算子(一覧、使い方、ベン図)
- 比較演算子、論理演算子の組み合わせ
比較演算子、論理演算子は基本的なPHP構文ですが、「どんなことができるか」の感触をつかめたら良いと思います。
あとで実際にソースコードを書くときにこの記事を見ていただければ幸いです。
プログラミング学習を挫折せずに続けて成功できる人は
- 「目的目標を明確にすること」
- 「質問・相談できる環境を作ること」
- 「自己解決スキルを身に着けること」
この3つを大切にしてると思います。
ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。
-
テックキャンプ
本気でIT業界に転職したい方におすすめです。
転職できなかったら全額返金があります。 -
DMM WEBCAMP
国から認定されているスクールです。
やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。 -
TechAcademy
1週間の無料体験があります。
気軽にスクールを体験したい方向けです。