これまでのおさらい
前の記事「【PHPプログラミング入門講座】条件分岐 (if文)」では、if文の使用例として、比較演算子「==」を使ったサンプルプログラムを紹介しました。
「$a == $b」の結果は、$aと$bが等しい場合はtrueになり、等しくない場合はfalseになります。
trueとfalseは、「論理型(boolean型)」と呼ばれます。
論理型(boolean型)については前の記事「【PHPプログラミング入門講座】論理型 (boolean型)」で説明しました。
今回の内容はこれらの知識を踏まえての説明になります。
比較演算子の種類
前回までは、if文について理解してもらうために、比較演算子「==」だけを紹介しましたが、比較演算子はそれだけではありません。
比較演算子の一覧表を以下に掲載します。
式 | 意味 | 説明 |
---|---|---|
$a == $b | 等しい | $aと$bの値が等しい場合はtrue、そうでない場合はfalse (データ型の比較はしない) |
$a === $b | 等しい (厳密) |
$aと$bの値とデータ型が等しい場合はtrue、そうでない場合はfalse |
$a != $b | 等しくない | $aと$bの値が等しくない場合はtrue、そうでない場合はfalse (データ型の比較はしない) |
$a !== $b | 等しくない (厳密) |
$aと$bの値またはデータ型が等しくない場合はtrue、そうでない場合はfalse |
$a < $b | より小さい | $aが$bより小さい(<)場合はtrue、そうでない場合はfalse |
$a > $b | より大きい | $aが$bより大きい(>)場合はtrue、そうでない場合はfalse |
$a <= $b | 以下 | $aが$b以下(≦)の場合はtrue、そうでない場合はfalse |
$a >= $b | 以上 | $aが$b以上(≧)の場合はtrue、そうでない場合はfalse |
$a <=> $b | 宇宙船演算子 | $a<$bの場合-1、$a==$bの場合0、$a>$bの場合1 (PHPバージョン7.0以上で使用可能) |
比較演算子とは、2つの値(基本的に数値)がその間に書いている演算子の通りの大小関係になっていればtrue、そうでなければfalseになる演算子です。
(※注:宇宙船演算子「<=>」だけは特殊であり、true/falseではなく数値になります。)
それでは、それぞれの比較演算子について詳しく説明していきます。
比較演算子「==」と「===」
比較演算子「==」と「===」は、左辺と右辺が等しい場合にtrueとなり、等しくない場合にfalseになる演算子です。
ただし、「===」の場合は、値だけでなくデータ型も同じでなければfalseになる性質を持っています。
変数の値に対する比較演算子「==」と「===」の結果を次の表にまとめました。
No | 変数の値 | 式 | 結果 |
---|---|---|---|
(1) | $a = 5 $b = 5 |
$a == $b | true |
$a === $b | true | ||
(2) | $a = 5 $b = 3 |
$a == $b | false |
$a === $b | false | ||
(3) | $a = 'apple' $b = 'apple' |
$a == $b | true |
$a === $b | true | ||
(4) | $a = 'apple' $b = 'banana' |
$a == $b | false |
$a === $b | false | ||
(5) | $a = 5 $b = '5' |
$a == $b | true |
$a === $b | false |
(1)〜(4)は明らかに左辺の変数$aと右辺の変数$bが等しければtrue、等しくなければfalseになるということは理解できると思います。
(5)は、変数$bに代入する数字はシングルクォーテーションで囲まれているため「文字列型」になります。
変数$aが数値で、変数$bが文字列型であるためデータ型が異なっています。
その場合は、「==」の結果はtrueになりますが、「===」の結果はfalseになります。
ちなみにこれらの結果は次のようなPHPプログラムを作って確認することができます。
<?php $a = 5; $b = '5'; $result = ($a === $b); var_dump($result);
上の表を参考に変数$aと変数$bの値を変えたり、「==」と「===」を変えたりして実際の結果を確認してみましょう。
比較演算子「!=」と「!==」
比較演算子「!=」と「!==」は、「==」と「===」の逆です。
左辺と右辺が等しくない場合にtrueとなり、等しい場合にfalseになる演算子です。
ただし、「!==」の場合は、値が等しくてデータ型が異なる場合は、trueになる性質を持っています。
変数の値に対する比較演算子「!=」と「!==」の結果を次の表にまとめました。
No | 変数の値 | 式 | 結果 |
---|---|---|---|
(1) | $a = 5 $b = 5 |
$a != $b | false |
$a !== $b | false | ||
(2) | $a = 5 $b = 3 |
$a != $b | true |
$a !== $b | true | ||
(3) | $a = 'apple' $b = 'apple' |
$a != $b | false |
$a !== $b | false | ||
(4) | $a = 'apple' $b = 'banana' |
$a != $b | true |
$a !== $b | true | ||
(5) | $a = 5 $b = '5' |
$a != $b | false |
$a !== $b | true |
比較演算子「<」と「>」と「<=」と「>=」
比較演算子「<」と「>」と「<=」と「>=」は、小学校の算数の授業で習った不等号「<」と「>」と「≦」と「≧」に該当します。
プログラム言語では、半角文字しか使えないため、「≦」は「<=」、「≧」は「>=」と書きます。
最初は違和感を感じるかもしれませんが、慣れていきましょう。
これらの比較演算子は、不等号の内容が正しければtrue、正しくなければfalseになります。
例えば$a=3、$b=4の場合、「$a < $b」は正しいのでtrue、「$a > $b」は間違っているのでfalseになります。
また、これらの比較演算子は基本的に数値同士の比較で使用します。
データ型が文字列型であっても内容が数値である値は、文字列→数値に変換して比較されます。
例えば、文字列型の「'5'」は数値型の「5」に変換されてから数値として比較されます。
変数の値に対する比較演算子「<」と「>」と「<=」と「>=」の結果を次の表にまとめました。
No | 変数の値 | 式 | 結果 |
---|---|---|---|
(1) | $a = 3 $b = 4 |
$a < $b | true |
$a > $b | false | ||
$a <= $b | true | ||
$a >= $b | false | ||
(2) | $a = 3 $b = 3 |
$a < $b | false |
$a > $b | false | ||
$a <= $b | true | ||
$a >= $b | true |
これは、不等号が正しいかどうかをチェックするだけの演算子であり、理解するのは難しくないかと思います。
比較演算子「<=>」
比較演算子「<=>」は、PHPのバージョン7.0から追加された新しい演算子です。
その見た目から宇宙船演算子と呼ばれています。
この演算子は、多くのデータを並び替える処理を記述するときなどに利用します。
現段階では、難しい内容であることと、使用することはあまりないので、説明は割愛します。
こんな比較演算子もあるということだけ、頭の片隅に覚えておいてください。
if文を使ったサンプルプログラム
比較演算子の説明を一通りしましたが、具体的なイメージを持つために、if文を使ったサンプルプログラムをいくつか書いておきます。
<サンプルプログラム>
<?php $a = 5; $b = 6; if($a != $b) { echo $a . 'と' . $b . 'は等しくありません。'; } else { echo $a . 'と' . $b . 'は等しいです。'; }
<実行結果>
5と6は等しくありません。
<サンプルプログラム>
<?php $a = 100; $b = 200; if($a > $b) { echo $a . 'は' . $b . 'よりも大きいです。'; } else { echo $a . 'は' . $b . 'よりも小さいか、等しいです。'; }
<実行結果>
100は200よりも小さいか、等しいです。
おわりに
比較演算子は、if文で変数の値を比較するときによく使います。
これからも頻繁に登場しますので、よく理解しておきましょう。
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 現在のページ:比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理