PHPの条件分岐(if, elseif, else)の基本を完全ガイド!初心者でもわかる使い方
新人
「PHPで特定の条件によって処理を分けたいのですが、どのようにすればいいですか?」
先輩
「PHPでは条件分岐を使って、状況に応じた処理を行うことができます。特に、if
、elseif
、else
を使うのが基本ですね。」
新人
「条件分岐って具体的にどういうものですか?」
先輩
「それでは、条件分岐の基本から見ていきましょう!」
1. 条件分岐とは?
条件分岐とは、プログラムの中で特定の条件を満たした場合に実行する処理を変える仕組みのことです。例えば、ユーザーがログインしているかどうかで表示内容を変えたり、商品の在庫があるかどうかで購入ボタンを表示したりします。
PHPでは、主に以下の条件分岐を使います。
- if文 - 指定した条件が真(
true
)の場合に処理を実行 - if-else文 - 条件が真ならAの処理、偽(
false
)ならBの処理を実行 - if-elseif-else文 - 複数の条件を順番に判定し、それに応じた処理を実行
2. if文の使い方(基本的な例)
まずは、if
文を使って簡単な条件分岐を行う方法を見てみましょう。
<?php
$age = 20;
if ($age >= 18) {
echo "あなたは成人です。";
}
?>
このプログラムでは、変数$age
が18以上の場合に「あなたは成人です。」と表示されます。
出力結果:
あなたは成人です。
もし$age
が17以下だった場合は何も表示されません。次に、条件が偽の場合の処理も加えたif-else
文を見てみましょう。
<?php
$age = 16;
if ($age >= 18) {
echo "あなたは成人です。";
} else {
echo "あなたは未成年です。";
}
?>
出力結果:
あなたは未成年です。
if-else
文を使うことで、条件が満たされなかった場合の処理も指定できます。
3. if-else文の使い方(条件によって処理を分ける)
前回の例では、条件が真のときだけ処理を実行しましたが、if-else
文を使うと、条件に合わなかった場合の処理も指定できます。
例えば、以下のようなコードを書けば、ユーザーの年齢によって異なるメッセージを表示できます。
<?php
$age = 15;
if ($age >= 18) {
echo "あなたは成人です。";
} else {
echo "あなたは未成年です。";
}
?>
出力結果:
あなたは未成年です。
このプログラムでは、$age
が18未満の場合に「あなたは未成年です。」と表示されます。
条件が満たされた場合と、満たされなかった場合の両方に対して処理を定義できるため、より柔軟なプログラムを作成できます。
4. elseif文の使い方(複数の条件を扱う)
次に、elseif
を使って複数の条件を順番にチェックする方法を見てみましょう。
例えば、学校の成績を判定する場合を考えます。
<?php
$score = 75;
if ($score >= 90) {
echo "成績はAです。";
} elseif ($score >= 80) {
echo "成績はBです。";
} elseif ($score >= 70) {
echo "成績はCです。";
} else {
echo "成績はDです。";
}
?>
出力結果:
成績はCです。
このプログラムでは、スコアに応じて異なる成績が表示されます。
条件を上から順番にチェックし、最初に一致した条件の処理が実行されます。
たとえば、スコアが85の場合は「成績はBです。」と表示され、スコアが60の場合は「成績はDです。」と表示されます。
5. 条件分岐の具体的な活用例
実際のプログラムでは、条件分岐を使ってさまざまな場面で処理を切り替えます。
例1: ユーザーのログイン状態を判定
ウェブサイトでは、ログインしているかどうかで表示を切り替えることがよくあります。
<?php
$loggedIn = false;
if ($loggedIn) {
echo "ようこそ、ユーザーさん!";
} else {
echo "ログインしてください。";
}
?>
出力結果:
ログインしてください。
例2: 年齢に応じたチケット料金の計算
例えば、映画館のチケット料金を年齢によって変更する場合、以下のような条件分岐を使います。
<?php
$age = 12;
$price = 0;
if ($age < 13) {
$price = 500;
} elseif ($age < 18) {
$price = 800;
} else {
$price = 1200;
}
echo "チケット料金は " . $price . " 円です。";
?>
出力結果:
チケット料金は 500 円です。
このコードでは、子供(12歳以下)は500円、中高生(13歳以上17歳以下)は800円、大人は1200円の料金が適用されます。
例3: 天気に応じたメッセージを表示
天気によって異なるメッセージを表示する例を見てみましょう。
<?php
$weather = "雨";
if ($weather == "晴れ") {
echo "今日は良い天気です!";
} elseif ($weather == "曇り") {
echo "少し曇っていますね。";
} elseif ($weather == "雨") {
echo "雨が降っています。傘を持って行きましょう!";
} else {
echo "天気が不明です。";
}
?>
出力結果:
雨が降っています。傘を持って行きましょう!
このように、条件分岐を使うことで、さまざまな状況に応じた処理を簡単に実装できます。
6. 複数の条件を組み合わせる(論理演算子の使用)
条件分岐では、一つの条件だけでなく、複数の条件を組み合わせて判定することもよくあります。その際に使用するのが「論理演算子」です。
PHPでは、以下のような論理演算子があります。
- AND(&&) - 両方の条件が真(
true
)の場合に処理を実行 - OR(||) - どちらかの条件が真(
true
)の場合に処理を実行 - NOT(!) - 条件を逆にする(真を偽に、偽を真に)
AND(&&)を使った例
例えば、年齢が20歳以上で、かつ会員登録済みのユーザーに特別なメッセージを表示する場合、以下のように書きます。
<?php
$age = 25;
$isMember = true;
if ($age >= 20 && $isMember) {
echo "あなたは特別会員です!";
} else {
echo "特別会員ではありません。";
}
?>
出力結果:
あなたは特別会員です!
OR(||)を使った例
次に、年齢が20歳以上または会員登録済みなら特典を受けられる場合の例を見てみましょう。
<?php
$age = 18;
$isMember = true;
if ($age >= 20 || $isMember) {
echo "あなたは特典を受けられます!";
} else {
echo "特典を受けるには会員登録が必要です。";
}
?>
出力結果:
あなたは特典を受けられます!
NOT(!)を使った例
NOT(!
)を使うと、条件を逆にすることができます。
例えば、ログインしていないユーザーに「ログインしてください」と表示する場合、以下のように書きます。
<?php
$isLoggedIn = false;
if (!$isLoggedIn) {
echo "ログインしてください。";
} else {
echo "ようこそ、ユーザーさん!";
}
?>
出力結果:
ログインしてください。
7. 条件分岐を使った実践的なコード(簡単なログイン判定)
条件分岐を使えば、簡単なログインシステムを作ることもできます。
以下の例では、ユーザー名とパスワードが正しい場合に「ログイン成功」と表示するプログラムです。
<?php
$username = "admin";
$password = "1234";
$inputUser = "admin";
$inputPass = "1234";
if ($username == $inputUser && $password == $inputPass) {
echo "ログイン成功!";
} else {
echo "ユーザー名またはパスワードが違います。";
}
?>
出力結果:
ログイン成功!
このプログラムでは、入力されたユーザー名とパスワードが一致した場合に「ログイン成功!」と表示され、それ以外は「ユーザー名またはパスワードが違います。」と表示されます。
8. PHPの条件分岐を活用するための練習方法
条件分岐を使いこなすには、たくさんの練習をすることが大切です。以下のような練習問題を解いてみましょう。
練習問題1: 数値の偶数・奇数判定
変数に代入された数値が偶数か奇数かを判定するプログラムを作成してください。
<?php
$number = 7;
if ($number % 2 == 0) {
echo "この数は偶数です。";
} else {
echo "この数は奇数です。";
}
?>
練習問題2: 学生の成績判定
学生の点数をもとに、成績を判定するプログラムを作成してください。
<?php
$score = 85;
if ($score >= 90) {
echo "成績はAです。";
} elseif ($score >= 75) {
echo "成績はBです。";
} elseif ($score >= 60) {
echo "成績はCです。";
} else {
echo "成績はDです。";
}
?>
練習問題3: ショッピングサイトの割引判定
購入金額によって割引を適用するプログラムを作成してください。
<?php
$purchaseAmount = 12000;
$discount = 0;
if ($purchaseAmount >= 10000) {
$discount = 20;
} elseif ($purchaseAmount >= 5000) {
$discount = 10;
} else {
$discount = 5;
}
echo "割引率は " . $discount . "% です。";
?>
これらの練習問題に取り組むことで、条件分岐の使い方をより深く理解できるでしょう。