読み込み中...

初心者必見!PHP比較演算子の使い方・応用法まで徹底解説10選

初心者向けPHP比較演算子徹底解説記事のサムネイル PHP
この記事は約8分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、PHPの比較演算子について基本から応用まで理解することができるようになります。

プログラミング初心者のあなたでも、一歩一歩丁寧に解説しますので、安心して学んでいきましょう。

●PHP比較演算子とは

比較演算子は、文字通り二つの値を比較するための演算子です。

比較の結果は真(true)または偽(false)となり、この結果をもとにプログラムの流れを制御することができます。

比較演算子は主に条件分岐やループ処理で利用され、その結果によってプログラムの挙動を変えるための基本的な要素です。

PHPには複数の比較演算子があり、それぞれ異なる比較を行います。

○比較演算子の基本

PHPには以下のような比較演算子があります。

  1. 等しい(==)
  2. 等しくない(!=)
  3. 大きい(>)
  4. 小さい(<)
  5. 等しいか大きい(>=)
  6. 等しいか小さい(<=)

これらは最も基本的な比較演算子で、数値や文字列を比較する際に用います。PHPでは厳密な比較を行うための「===」や「!==」という演算子もあります。

これらは値だけでなく、データ型まで合致するかどうかを判断します。

●PHP比較演算子の使い方

それでは、PHPの比較演算子の具体的な使い方をサンプルコードと共に見ていきましょう。

下記の例は基本的な比較演算子の使い方を示しています。

○サンプルコード1:等しい比較

このコードでは、変数$xと$yが等しいかを比較しています。

等しい場合は”xとyは等しい”と出力し、等しくない場合は”xとyは等しくない”と出力します。

実際には$xと$yの値は異なるので、”xとyは等しくない”と出力されます。

<?php
$x = 10;
$y = 20;

if ($x == $y) {
    echo "xとyは等しい";
} else {
    echo "xとyは等しくない";
}
?>

○サンプルコード2:等しくない比較

このコードでは等しくない比較(!=)を用いて$xと$yを比較します。

もし$xと$yが等しくない場合は”xとyは等しくない”と出力し、等しい場合は”xとyは等しい”と出力します。

この例では、$xと$yの値は異なるため、”xとyは等しくない”と出力されます。

<?php
$x = 10;
$y = 20;

if ($x != $y) {
    echo "xとyは等しくない";
} else {
    echo "xとyは等しい";
}
?>

○サンプルコード3:より大きい、より小さい比較

このコードでは、大きい比較(>)と小さい比較(<)を使って$xと$yを比較します。$xが$yより大きい場合、”xはyより大きい”と出力します。

$xが$yより小さい場合は”xはyより小さい”と出力します。$xと$yが等しい場合は”xとyは等しい”と出力します。

この例では$xは$yより小さいため、”xはyより小さい”と出力されます。

<?php
$x = 10;
$y = 20;

if ($x > $y) {
    echo "xはyより大きい";
} elseif ($x < $y) {
    echo "xはyより小さい";
} else {
    echo "xとyは等しい";
}
?>

○サンプルコード4:等しいかより大きい、等しいかより小さい比較

このコードでは等しいかより大きい比較(>=)を用いて$xと$yを比較します。

$xが$y以上なら”xはy以上”と出力し、そうでない場合は”xはyより小さい”と出力します。

この例では$xと$yが等しいため、”xはy以上”と出力されます。

<?php
$x = 10;
$y = 10;

if ($x >= $y) {
    echo "xはy以上";
} else {
    echo "xはyより小さい";
}
?>

●PHP比較演算子の応用例

それでは、より実践的な状況での比較演算子の使用例を見ていきましょう。

○サンプルコード5:配列の要素を比較する

このコードでは、配列$array1と$array2が等しいかを比較しています。

等しい場合は”二つの配列は等しい”と出力し、等しくない場合は”二つの配列は等しくない”と出力します。

この例では$array1と$array2は等しいので、”二つの配列は等しい”と出力されます。

<?php
$array1 = [1, 2, 3];
$array2 = [1, 2, 3];

if ($array1 == $array2) {
    echo "二つの配列は等しい";
} else {
    echo "二つの配列は等しくない";
}
?>

○サンプルコード6:関数内での比較演算

このコードでは関数is_evenを使って$numが偶数かどうかを判断しています。

is_even関数内では、引数$numを2で割った余りが0(つまり偶数)であれば真を返し、そうでなければ偽を返します。

この例では$numは10なので、”10は偶数です”と出力されます。

<?php
function is_even($num) {
    if ($num % 2 == 0) {
        return true;
    } else {
        return false;
    }
}

$num = 10;
if (is_even($num)) {
    echo $num . "は偶数です";
} else {
    echo $num . "は奇数です";
}
?>

○サンプルコード7:複数の条件を比較する

このコードでは複数の条件を一度に比較しています。

$ageが20以上で、かつ$incomeが3000000以上であれば”ローンが組めます”と出力します。

どちらか一方でも条件を満たさない場合は”ローンが組めません”と出力します。

この例では両方の条件を満たしているので、”ローンが組めます”と出力されます。

<?php
$age = 20;
$income = 3000000;

if ($age >= 20 && $income >= 3000000) {
    echo "ローンが組めます";
} else {
    echo "ローンが組めません";
}
?>

○サンプルコード8:三項演算子を用いた比較

このコードでは三項演算子を使って$xと$yを比較しています。

$xが$yより大きい場合は”xはyより大きい”と$resultに代入し、そうでなければ”xはy以下”を$resultに代入します。

この例では$xは$y以下なので、”xはy以下”が出力されます。

<?php
$x = 10;
$y = 20;

$result = ($x > $y) ? "xはyより大きい" : "xはy以下";
echo $result;
?>

○サンプルコード9:null合体演算子を用いた比較

このコードではnull合体演算子(??)を使って$_GET[‘name’]の値が存在するかをチェックしています。

もし$_GET[‘name’]がnullであれば、代わりに”ゲスト”を$nameに代入します。

この例では$_GET[‘name’]がnullであれば、”ようこそ、ゲストさん”と出力されます。

<?php
$name = $_GET['name'] ?? "ゲスト";
echo "ようこそ、" . $name . "さん";
?>

○サンプルコード10:スペースシップ演算子を用いた比較

このコードではスペースシップ演算子(<=>)を使って$xと$yを比較します。

$xが$yより小さい場合は-1を、等しい場合は0を、$xが$yより大きい場合は1を出力します。

この例では$xが$yより小さいため、-1が出力されます。

<?php
$x = 10;
$y = 20;

echo $x <=> $y;
?>

●比較演算子の注意点と対処法

比較演算子を使用する際、特に注意が必要な点は「等価演算子(==)と同一演算子(===)の違い」です。

等価演算子(==)は型変換を行い、値のみを比較しますが、同一演算子(===)は型を含めた完全な一致を確認します。

そのため、同じ値でも型が違う場合、予期せぬ結果をもたらすことがあります。

例えば、下記のようなコードを見てみましょう。

<?php
$var = "0";
if ($var == false) {
    echo "等価演算子では0とfalseは等しい";
}
if ($var === false) {
    echo "同一演算子では0とfalseは等しくない";
}
?>

このコードでは、等価演算子(==)と同一演算子(===)で比較した結果が異なります。

等価演算子では”0″とfalseは等しいと評価されますが、同一演算子では等しくないと評価されます。

そのため、型も含めて厳密に比較したい場合は同一演算子(===)を使用すると良いでしょう。

また、比較対象のデータ型が異なる場合や、比較対象がnullである可能性がある場合にも注意が必要です。

そういった場合はisset関数やempty関数、null合体演算子などを適切に使い分けることで、エラーを防ぐことができます。

まとめ

PHPの比較演算子を理解し、適切に使用することで、より効率的で可読性の高いコードを書くことができます。

各演算子の特性を理解し、使用する状況に応じて最適な比較演算子を選ぶことが重要です。

また、予期せぬエラーやバグを避けるために、データ型の違いやnullの扱いにも注意しながらコーディングを行いましょう。