【初心者向け PHP 入門】if文、条件分岐の使い方
投稿日:
この記事では、PHP の基本的な制御構文である if 文(条件分岐)について、分かりやすく解説します。
もくじ
if文とは
英語のifは「もし〜ならば」という意味があります。
つまり、指定した条件のときだけプログラムを実行したい場合にif文を使用します。
では実際に、例を踏まえて解説していきます。
if文は、条件が真 (true) である場合に、その中のコードを実行する構文です。
PHPやプログラミング言語の基本的な制御の一つで、プログラムを制御するために非常に重要です。
・基本的な書き方
if (条件) { // 条件が真の場合に実行するコード }
・例
$age = 20; if ($age >= 18) { echo "あなたは成人です。"; // 条件が真なので実行される }
この例では、「$age」が18以上の場合に「あなたは成人です。」というメッセージが表示されます。
条件の書き方には以上や以下、未満、等しいなど様々な書き方ができます。
条件の書き方
「等号」、「不等号」、「変数」などを用いて条件を記述します。
その条件が正しい場合、if文の中の処理を行います。
基本的な書き方
記号 | 意味 | 記述例 | 例の意味 |
---|---|---|---|
<= | 以下のとき | $x <= 5 | 5以下のとき実行 |
< | 未満のとき、小さいとき | $x < 6 | 6より小さいとき実行 |
>= | 以上のとき | $x >= 5 | 5以上のとき実行 |
> | 大きいとき | $x > 4 | 4より大きいとき実行 |
== | 等しいとき | $x == 5 | xが5のとき実行 |
!= | 等しくないとき | $x != 2 | xが2以外のとき実行 |
=== | 完全に等しいとき(型まで参照) | $x === 7 | xが整数7のとき実行 |
・例
$num = 5; if ($num == 5) { echo '数字は' . $num .'です。'; // $numが5のときだけ実行 }
否定形
上記で解説した書き方では、条件が正しいときに動作しました。
しかし、条件を「偽 (false)」の場合に実行したい場合もあります。
if文の否定形は、条件を反転させるために使用します。
if文の条件を否定形にするには、論理演算子 「 ! 」 (NOT) を使用します。
「 ! 」 は、条件の真偽を反転させます。
・基本的な書き方
if ( !条件 ) { // 条件に当てはまっていないとき実行 }
・例
$isLogin = false; if ( !$isLogin ) { echo 'ログインしていません'; // 条件が偽(false)のときだけ実行 }
else文・それ以外のとき
if文の条件外のとき、else文の中身を実行します。
・書き方
if (条件) { // 条件が真の場合に実行するコード } else { // 条件が偽の場合に実行するコード }
・例
$num = 5; if ( $num <= 3 ) { // 3以下のとき実行 } else { // それ以外のとき実行 }
else if・条件分岐の追加
else if文は、複数の条件で分岐したい場合に使用します。
if文、else if文、else文を組み合わせることで、より複雑な条件分岐を実現できます。
・書き方
if (条件1) { // 条件1 が真の場合に実行するコード } else if (条件2) { // 条件1 が偽で、条件2 が真の場合に実行するコード } else { // 上記の条件がすべて偽の場合に実行するコード }
・例
$score = 85; // 点数を 85 に設定 if ($score >= 90) { echo 'Aランク'; } elseif ($score >= 80) { echo 'Bランク'; // 90より小さく、80以上なのでここを実行 } elseif ($score >= 70) { echo 'Cランク'; } else { echo 'Dランク'; }
else ifとif文を並べたときの違い
「if」、「else if」、「else」は条件が負(違ったとき)の場合は、次の「else if」、「else」の条件に含まれるかを順番に確認します。
このとき、条件に含まれた場合は1回しか処理しません。
・else ifの例
$temperature = 22; // 現在の温度 (℃) if ($temperature >= 30) { echo "半袖で過ごしましょう。"; // 30℃以上: 半袖 } else if ($temperature >= 20) { //ここが実行 echo "薄手の長袖で過ごしましょう。"; // 20℃以上: 薄手長袖 } else if ($temperature >= 10) { echo "長袖で過ごしましょう。"; // 10℃以上: 長袖 } else { echo "厚着で過ごしましょう。"; // 10℃未満: 厚着 }
「$temperature = 22」なので、「else if ($temperature > 20)」が実行され、「薄手の長袖で過ごしましょう。」が表示されます。
・if文を並べた例
$temperature = 22; // 現在の温度 (℃) if ($temperature >= 30) { echo "半袖で過ごしましょう。"; // 30℃以上: 半袖 } if ($temperature >= 20) { //ここが実行 echo "薄手の長袖で過ごしましょう。"; // 20℃以上: 薄手長袖 } if ($temperature >= 10) { //ここも実行される echo "長袖で過ごしましょう。"; // 10℃以上: 長袖 } if ($temperature < 10) { echo "厚着で過ごしましょう。"; // 10℃未満: 厚着 }
一方、if文を並べた場合、条件に当てはまっていれば、複数実行されます。
今回は22℃であるため、「20℃以上($temperature >= 20)」と「10℃以上($temperature >= 10)」が実行されます。
ではif文を並べるのは間違いかと言うと、そうではありません。
複数実行したいか、条件を絞って1度だけ実行したいかは「やりたい、作りたい機能」によって違います。
どちらの方法を使うか考えながらプログラムを書きましょう。

ルナリス
実行したい条件をよく考えて書くといいわ
if文のネスト・入れ子
if文の中に別のif文を記述することができます。
if文の中にif文を入れることをネスト(入れ子)と呼びます。
・書き方
if (条件1) { // 条件1 が真の場合に実行するコード if (条件2) { // 条件1 と条件2 が両方とも真の場合に実行するコード } else { // 条件1 は真だが、条件2 が偽の場合に実行するコード } } else { // 条件1 が偽の場合に実行するコード }
・入れ子の例
$age = 25; $hasLicense = true; if ($age >= 18) { if ($hasLicense) { //これが実行 echo "運転可能です。"; // 年齢が 18 歳以上で、免許を持っている場合に実行される } else { echo "運転できません。免許が必要です。"; // 年齢が 18 歳以上だが、免許を持っていない場合に実行される } } else { echo "運転できません。"; // 年齢が 18 歳未満の場合に実行される }
この例では、年齢と免許の有無の両方を条件として、運転可能かどうかを判定しています。
このように入れ子にすることでより複雑な条件分岐を記述できます。
しかし、ifの中にifを、さらにその中にifを書く、と続けていくとコードが難解(可読性が低下)になる恐れがあります。
if文の入れ子が多く重なった状態は「ネストが深い」と呼ばれます。
ネストが深くならないよう、できるだけ簡潔なif文やプログラムを書くことが望ましいです。
if文どうしたら簡潔に書けるか、またはif文を使わなくても組めないかなど、きれいに書けないかを考えながらコードを書きましょう。

ルナリス
無駄にif文を書きすぎないよう注意よ
if文に条件を複数書く
PHP の if 文では、複数の条件を組み合わせるために論理演算子 && (AND) と || (OR) が使用されます。
&&を使用することで「かつ(指定した条件が全て正)のとき」実行、||を使用することで「または(指定した条件のいずれかが正)のとき」実行することができます。
&& (AND) 演算子
`&&`は論理積を表し、「かつ」を意味します。
if 文において、複数の条件を`&&`で繋ぐと、すべての条件が真 (true) である場合にのみ、if文内のコードが実行されます。

ルナリス
指定した条件がすべて正しい場合に実行されるわ
・書き方
if (条件1 && 条件2) { // 条件1 と 条件2 が両方とも真の場合に実行するコード }
・例
$age = 20; $hasLicense = true; if ($age >= 18 && $hasLicense) { echo "運転可能です。"; // 年齢が 18 歳以上で、免許を持っている場合に実行される } else { echo "運転できません。"; }
この例では、$age >= 18 と $hasLicense の両方が true である場合に、”運転可能です。” というメッセージが表示されます。
|| (OR) 演算子
`||` は論理和を表し、「または」を意味します。
if文において、複数の条件を `||` で繋ぐと、いずれかの条件が真 (true) である場合に、if文内のコードが実行されます。

ルナリス
指定した条件が1つでも正しい場合に実行されるわ
・書き方
if (条件1 || 条件2) { // 条件1 または 条件2 がいずれか真の場合に実行するコード }
・例
$isRaining = true; $isSnowing = false; if ($isRaining || $isSnowing ) { echo "雨または雪が降ります。"; } else { echo "天候は良いです。"; }
この例では、「$isRaining」または「$isSnowing 」がtureのとき、「雨または雪が降ります。」が表示され、それ以外のとき「天候は良いです。」が表示されます。
まとめ
if文の簡単な書き方やルールをざっくりと解説しました。
これらを理解し活用することで、プログラムのロジックを柔軟に制御できるようになります。

ルナリス
if文は超重要だからマスターするといいわ
コメント一覧