プログラミングの面白さの一つは、コンピュータに状況判断をさせて、その結果によって処理の流れを変えられる点にあります。「もし時間が朝なら『おはよう』と挨拶し、夜なら『こんばんは』と挨拶する」といった処理は、その典型例です。
このような「もし〜なら、…する」という条件分岐を実現するのが、PHPのif
文です。
この記事では、PHPのif
文の基本的な使い方から、条件を組み立てるために不可欠な「比較演算子」と「論理演算子」まで、サンプルコードを交えながら分かりやすく解説します。
1. if
文の基本的な仕組み
if
文は、指定した条件が「正しい(true
)」か「間違い(false
)」かを判断し、正しかった場合に特定の処理を実行するための構文です。
基本のif
文
最もシンプルな形は、「もし条件が正しければ、処理を実行する」というものです。
<?php
$age = 20;
// もし、年齢($age)が20以上なら
if ($age >= 20) {
echo "成人です。";
}
else
:条件に合わなかった場合の処理
「もし条件が正しければAを、そうでなければBを実行する」という場合はelse
を使います。
<?php
$weather = "雨";
if ($weather === "晴れ") {
echo "傘は必要ありません。";
} else {
echo "傘を持って行きましょう。";
}
// 出力: 傘を持って行きましょう。
elseif
:さらに多くの条件で分岐する
「もしAなら…、もしBなら…、もしCなら…」のように、複数の条件で分岐させたい場合はelseif
を使います。
<?php
// 現在の時刻(0~23)を取得
$current_hour = date('G');
if ($current_hour < 12) {
echo "おはようございます。";
} elseif ($current_hour < 18) {
echo "こんにちは。";
} else {
echo "こんばんは。";
}
このコードは、実行する時間帯によって挨拶が変わります。
2. 条件を作る「比較演算子」
if
文の ()
の中に入る条件式は、「比較演算子」を使って作ります。2つの値を比べて、それが正しいか(true
)間違いか(false
)を判定します。
演算子 | 名称 | 意味 | 例 |
=== | 等しい | 値とデータ型が両方とも等しい | $a === 10 |
!== | 等しくない | 値またはデータ型が等しくない | $a !== 10 |
> | より大きい | 左辺が右辺より大きい | $a > 10 |
< | より小さい | 左辺が右辺より小さい | $a < 10 |
>= | 以上 | 左辺が右辺以上 | $a >= 10 |
<= | 以下 | 左辺が右辺以下 | $a <= 10 |
⚠️ 重要:
==
ではなく===
を使おう PHPには==
という演算子もありますが、これはデータ型を無視して値を比較するため、10 == "10"
がtrue
になるなど、意図しない結果を招くことがあります。バグを防ぐため、値と型の両方を厳密に比較する===
を普段から使うことを強く推奨します。
比較演算子がどのようにtrue
かfalse
を返すか、var_dump()
で見てみましょう。
<?php
$score = 85;
var_dump($score >= 60); // true: 85は60以上なので正しい
echo "<br>";
var_dump($score === 100); // false: 85は100と等しくないので間違い
3. 複雑な条件を作る「論理演算子」
「A かつ B」や「A または B」のように、複数の条件を組み合わせて、より複雑な判定を行いたい場合は「論理演算子」を使います。
演算子 | 読み方 | 意味 | 例 |
&& | AND | 両方の条件がtrue のときだけtrue | 条件A && 条件B |
|| | OR | もしくは(左右のいずれかがtrue の場合、ture ) | 条件A || 条件B |
! | NOT | 条件の結果を逆転させる(true ⇔ false ) | !条件A |
論理演算子の使用例
例えば、オンラインストアの送料無料キャンペーンを考えてみましょう。「購入金額が5,000円以上、かつ、会員ランクがゴールド」という条件をコードにしてみます。
<?php
$total_price = 6000;
$member_rank = "gold";
if ($total_price >= 5000 && $member_rank === "gold") {
echo "送料無料です!";
} else {
echo "送料が必要です。";
}
// 出力: 送料無料です!
mt_rand()
と組み合わせてみよう
mt_rand(最小値, 最大値)
関数を使うと、指定した範囲のランダムな整数を生成できます。これとif
文を組み合わせると、実行するたびに結果が変わる面白いプログラムが作れます。
<?php
// 0から100までのランダムな点数を生成
$test_score = mt_rand(0, 100);
echo "あなたの点数は {$test_score} 点です。<br>";
if ($test_score >= 80) {
echo "評価S: 素晴らしい成績です!";
} elseif ($test_score >= 60 && $test_score < 80) {
echo "評価A: 合格です。よく頑張りました。";
} else {
echo "評価B: もう一息です。";
}
まとめ
今回は、PHPで処理の流れをコントロールするための基本であるif
文について学びました。
【ポイントの振り返り】
if
,elseif
,else
を使って、条件に応じた処理の分岐ができる。- 条件式は 比較演算子 (
===
,>
,<=
など)を使って作成する。 - 論理演算子 (
&&
,||
)を使うことで、複数の条件を組み合わせられる。
if
文は、あらゆるプログラムの根幹をなす非常に重要な構文です。これらの演算子との組み合わせをマスターすれば、あなたのプログラムはより賢く、そして柔軟な動きをするようになるでしょう。