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 . "% です。";
?>
これらの練習問題に取り組むことで、条件分岐の使い方をより深く理解できるでしょう。
まとめ
ここまでの内容をふりかえってみると、PHPの条件分岐という仕組みはとても大切な考え方であることがよく分かります。ふだんの生活でも、時間があればゆっくり休むし、雨なら傘を持って出かけるし、お腹がすいたら食事をするというように、わたしたちは状況に応じた行動を自然と選んでいます。プログラムの世界でも同じで、現在の状態やデータの値に合わせて、実行する処理を切り替えたい場面が必ずあります。PHPでは、その代表的な書き方として「if文」「if-else文」「elseif文」が用意されており、複雑な条件を判定するときには論理演算子を組み合わせることで、より人間らしい判断に近い処理ができるようになります。
プログラミング初心者にとって、条件分岐は最初のハードルに感じることもあります。けれども仕組みそのものはとても素直で、「もし ○○ なら △△ する」という単純な流れが基本です。特別むずかしいことはしていませんし、ひとつひとつ試しながら動きを確認すれば、だれにでも理解できる内容です。とくにPHPでは、条件が真か偽かという二つの状態だけでなく、複数の値に応じて処理を変えたり、ログイン機能のように「ユーザー名とパスワードが両方正しいときだけ成功させる」というような少し現実に近い判断も実装できます。実務でも学校の課題でもよく登場する考え方なので、慣れておくと今後の勉強がとても楽になります。
ひとつの例として、次のようなシンプルなコードがあります。すでに記事の中でも何度か説明しましたが、あらためて読み直すことで理解がより深くなるでしょう。
<?php
$age = 22;
$member = true;
if ($age >= 20 && $member) {
echo "ようこそ特別会員さま";
} elseif ($age >= 18) {
echo "通常会員としてご利用いただけます";
} else {
echo "ご利用には年齢制限があります";
}
?>
この短いコードだけでも、年齢によって処理が変わり、さらに会員であるかどうかを判定しています。二十歳以上かつ会員であれば特別なメッセージが表示され、十八歳以上なら通常会員、そして条件に当てはまらない場合は利用できないという流れになっています。条件の順番はとても大切で、上から順番に判定していき、最初に当てはまった処理だけが実行されます。ここを理解できると、PHPの条件分岐が持つ柔軟さを安心して使いこなせるようになります。
また、条件分岐は「比較演算子」と「論理演算子」を正しく組み合わせることで、しっかり考えた判定ができるようになります。値が等しいか調べたいときは「==」や「===」を使い、ある値以上かどうかは「>=」、複数の条件を同時に満たしたいなら「&&」、どちらか一つでも満たしたいなら「||」、否定したい場合は「!」というように、動きの意味を理解しながら使えば、状況に合わせた判断を正確に表現できます。とくに、ログイン処理やショッピングサイトの割引判定など、現実の仕組みをそのままコードで表すことができるのが条件分岐の面白いところです。
さらに、条件分岐は小さなプログラムだけではなく、大規模なアプリケーションでも必ず登場します。たとえば、ユーザーが入力した値に合わせて画面表示を変えたり、在庫の状況を見て購入ボタンを出したり、注文履歴の有無でメニューを切り替えたりと、どんなウェブアプリケーションにも欠かせない存在です。基礎を理解しておくほど、その先の学習や開発がスムーズになり、複雑な機能にも進みやすくなります。
PHPを使う初心者にとって、一番効果的な練習方法は手を動かすことです。条件を変えたり、変数の値を入れ替えたり、異なるパターンを試しながら動作を確かめると、どのような場面でどのような結果になるのかが体で覚えられます。もし少し自信がついてきたら、次のような簡単なコードを自分で考えてみるとよいでしょう。
<?php
$weather = "雪";
$holiday = true;
if ($weather == "晴れ" && !$holiday) {
echo "今日は仕事です";
} elseif ($weather == "晴れ" && $holiday) {
echo "お出かけ日和です";
} elseif ($weather == "雨" || $weather == "雪") {
echo "家でゆっくり過ごしましょう";
} else {
echo "天気が不明です";
}
?>
こうした何気ない例であっても、条件分岐の使い方は自然と身につきます。自分で文章を考え、プログラムに置き換えてみる習慣があると、気がつけば複雑な処理も表現できるようになります。とくにPHPは動作確認が手軽で、ちょっとした試行錯誤がやりやすい言語なので、初心者でも失敗を恐れず練習できるのが魅力です。
生徒「条件分岐は文字で読んでいるとむずかしそうに見えましたが、実際に書いてみると意外と単純なんですね。」
先生「そうなんです。まるで日常生活の判断と同じで、状況に合わせて行動を選ぶだけです。書き方に慣れるほど、自然に手が動くようになりますよ。」
生徒「if、elseif、else、それから論理演算子を使えば、かなり細かい判断もできますね。」
先生「その通りです。ログイン判定や割引判定など、現実で必要になる判断を表現できるようになります。自分で動かして確かめると理解が深まります。」
生徒「もっと練習して、いろいろな条件を試してみたいと思います!」
先生「とても良い姿勢です。条件分岐はPHPの基礎ですから、しっかり身につければこの先がぐっと楽になりますよ。」