【PHP】比較演算子の書き方と使い方の基本
PHPの比較演算子は、二つの値を比較して「true」か「false」を判定する重要な機能です。この記事では、値が等しいか、大小関係、データ型まで含めて厳密に比較する方法など、主要な比較演算子の種類と基本的な使い方をサンプルコードと共に詳しく解説します。プログラムの条件分岐の基礎を学び、柔軟なシステム開発に役立てましょう。
開発環境
- OS: Windows10
- Editor: Visual Studio Code
- PHP: 8.0以降
PHPの比較演算子とは
左辺と右辺を比べる演算子式です。 比較した結果として「true」または「false」を返します。
比較演算子の役割
PHPにおける比較演算子は、二つの値の関係性を判定するために使用されます。具体的には、二つの値が「等しいか」「等しくないか」「どちらが大きいか」「どちらが小さいか」などを比較します。この比較の結果は、必ず「真(true)」または「偽(false)」のどちらかになります。
プログラミングでは、この「true」や「false」の結果を利用して、次に実行する処理を決定します。たとえば、「もしユーザーが入力したパスワードが正しい場合は、ログインを許可する」といった条件分岐処理で非常に重要になります。比較演算子を理解することは、プログラムが状況に応じて異なる動作をするように制御するために不可欠です。
主な比較演算子の種類
PHPには複数の比較演算子があり、それぞれ異なる比較方法を提供します。ここでは、システムエンジニアを目指す上で特に重要となる主要な比較演算子について、それぞれの意味と具体的な使用例を説明します。
等しい (==)
左辺と右辺の値が等しいかどうかを比較します。この演算子の場合、データ型が異なっていても、値が同じであればtrueを返します。
1<?php 2$number = 10; 3$string = "10"; 4 5var_dump($number == $string); // 結果: true (値は同じと判断されます) 6var_dump(5 == 5); // 結果: true 7var_dump(5 == 10); // 結果: false 8?>
等しくない (!= または <>)
左辺と右辺の値が等しくないかどうかを比較します。
1<?php 2$number1 = 10; 3$number2 = 20; 4 5var_dump($number1 != $number2); // 結果: true 6var_dump($number1 <> $number2); // 結果: true (!= と同じ意味です) 7var_dump(10 != 10); // 結果: false 8?>
厳密に等しい (===)
左辺と右辺の値が等しいだけでなく、データ型も厳密に等しいかどうかを比較します。値が同じでもデータ型が異なればfalseを返します。
1<?php 2$number = 10; 3$string = "10"; 4 5var_dump($number === $string); // 結果: false (値は同じですが、データ型が異なるため) 6var_dump(10 === 10); // 結果: true 7?>
厳密に等しくない (!==)
左辺と右辺の値、またはデータ型のどちらかが厳密に等しくないかどうかを比較します。
1<?php 2$number = 10; 3$string = "10"; 4 5var_dump($number !== $string); // 結果: true (データ型が異なるため) 6var_dump(10 !== 10); // 結果: false 7?>
より小さい (<)
左辺が右辺よりも小さいかどうかを比較します。
1<?php 2$val1 = 5; 3$val2 = 10; 4 5var_dump($val1 < $val2); // 結果: true 6var_dump($val2 < $val1); // 結果: false 7var_dump(5 < 5); // 結果: false 8?>
より大きい (>)
左辺が右辺よりも大きいかどうかを比較します。
1<?php 2$val1 = 10; 3$val2 = 5; 4 5var_dump($val1 > $val2); // 結果: true 6var_dump($val2 > $val1); // 結果: false 7var_dump(10 > 10); // 結果: false 8?>
以下 (<=)
左辺が右辺以下(より小さいか、または等しい)かどうかを比較します。
1<?php 2$val1 = 5; 3$val2 = 5; 4$val3 = 10; 5 6var_dump($val1 <= $val2); // 結果: true 7var_dump($val1 <= $val3); // 結果: true 8var_dump($val3 <= $val1); // 結果: false 9?>
以上 (>=)
左辺が右辺以上(より大きいか、または等しい)かどうかを比較します。
1<?php 2$val1 = 10; 3$val2 = 10; 4$val3 = 5; 5 6var_dump($val1 >= $val2); // 結果: true 7var_dump($val1 >= $val3); // 結果: true 8var_dump($val3 >= $val1); // 結果: false 9?>
これらの比較演算子を正確に理解し、適切な場面で使い分けることは、PHPプログラムで柔軟な条件分岐やデータ処理を実装する上で非常に重要です。特に==と===のように似ているが挙動が異なる演算子については、その違いをしっかりと把握しておく必要があります。
サンプルコード
php/chapter02/01.php
01.php1<?php 2// 1. 等しいかどうか(==) 3$result = (3 == 3); // 3と3が等しいかを比較 4echo "3 == 3 の結果: " . var_export($result, true) . "\n"; // trueを返す 5
php/chapter02/02.php
02.php1<?php 2// 2. 同一かどうか(===) 3$result = (3 === 3); // 3と3が同じ型であり、かつ等しいかを比較 4echo "3 === 3 の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (3 === '3'); // 数値の3と文字列の'3'が同じ型であり、かつ等しいかを比較 7echo "3 === '3' の結果: " . var_export($result, true) . "\n"; // falseを返す 8
php/chapter02/03.php
03.php1<?php 2// 3. 等しくないかどうか(!= または <>) 3$result = (3 != 4); // 3と4が等しくないかを比較 4echo "3 != 4 の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (3 <> 4); // !=と同じく、3と4が等しくないかを比較 7echo "3 <> 4 の結果: " . var_export($result, true) . "\n"; // trueを返す 8
php/chapter02/04.php
04.php1<?php 2// 4. 同一でないかどうか(!==) 3$result = (3 !== '3'); // 数値の3と文字列の'3'が同じ型でないか、または等しくないかを比較 4echo "3 !== '3' の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (3 !== 3); // 数値の3と数値の3が同じ型でないか、または等しくないかを比較 7echo "3 !== 3 の結果: " . var_export($result, true) . "\n"; // falseを返す 8
php/chapter02/05.php
05.php1<?php 2// 5. より大きいかどうか(>) 3$result = (5 > 3); // 5が3より大きいかを比較 4echo "5 > 3 の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (3 > 5); // 3が5より大きいかを比較 7echo "3 > 5 の結果: " . var_export($result, true) . "\n"; // falseを返す 8
php/chapter02/06.php
06.php1<?php 2// 6. より小さいかどうか(<) 3$result = (3 < 5); // 3が5より小さいかを比較 4echo "3 < 5 の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (5 < 3); // 5が3より小さいかを比較 7echo "5 < 3 の結果: " . var_export($result, true) . "\n"; // falseを返す 8
php/chapter02/07.php
07.php1<?php 2// 7. より大きいかまたは等しいかどうか(>=) 3$result = (5 >= 3); // 5が3より大きいか、または等しいかを比較 4echo "5 >= 3 の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (5 >= 5); // 5が5より大きいか、または等しいかを比較 7echo "5 >= 5 の結果: " . var_export($result, true) . "\n"; // trueを返す 8 9$result = (3 >= 5); // 3が5より大きいか、または等しいかを比較 10echo "3 >= 5 の結果: " . var_export($result, true) . "\n"; // falseを返す 11
php/chapter02/08.php
08.php1<?php 2// 8. より小さいかまたは等しいかどうか(<=) 3$result = (3 <= 5); // 3が5より小さいか、または等しいかを比較 4echo "3 <= 5 の結果: " . var_export($result, true) . "\n"; // trueを返す 5 6$result = (5 <= 5); // 5が5より小さいか、または等しいかを比較 7echo "5 <= 5 の結果: " . var_export($result, true) . "\n"; // trueを返す 8 9$result = (5 <= 3); // 5が3より小さいか、または等しいかを比較 10echo "5 <= 3 の結果: " . var_export($result, true) . "\n"; // falseを返す 11
php/chapter02/09.php
09.php1<?php 2// 年齢による成人判定の練習問題 3// 成人判定のための年齢を設定 4$adult_age = 20; 5
php/chapter02/10.php
10.php1<?php 2// 判定したい年齢を設定 3$check_age = 18; // ここを変更して他の年齢でもテストできます 4
php/chapter02/11.php
11.php1<?php 2// 年齢を比較して成人かどうかを判定 3if ($check_age >= $adult_age) { 4 echo "$check_age 歳は成人です。\n"; // 20歳以上なら成人と判定 5} else { 6 echo "$check_age 歳は未成年です。\n"; // 20歳未満なら未成年と判定 7} 8
おわりに
本記事では、PHPの比較演算子が二つの値を比較し、「true」か「false」を返す基本的な機能と使い方を学びました。特に==と===のように、値だけでなくデータ型も厳密に比較するかどうかの違いを理解することが重要です。また、大小関係を判定する>や<=といった演算子も、プログラムの条件分岐において不可欠な役割を果たします。これらの比較演算子を使いこなすことで、プログラムが状況に応じて異なる処理を行うための基盤をしっかりと築けたことでしょう。今回の学習が、システムエンジニアを目指す上での柔軟なシステム開発に役立つことを願っています。