【PHP入門】演算子を使って比較しよう!

投稿日: 作成:   更新:

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週間の無料体験があります。
    気軽にスクールを体験したい方向けです。