本記事では、PHPで条件分岐をすることができるif文の書き方・使い方について解説しています。
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
if文の書き方・使い方
if文とは、条件式を満たしている場合にのみ特定の処理を実行させたい時などに使用されます。複数の条件式を組み合わせたりすることも可能です。
if~else
まず始めにif文の基本文法である、if~elseの書き方・使い方について紹介します。
<?php
if(条件式){
// 条件式を満たした時に実行する処理を記述
} else {
// 条件式を満たしていない時に実行する処理を記述
}
?>
if()内に条件式と呼ばれるものを記述します。{}内には条件式を満たしている時にのみ実行したい処理を記述します。elseは、条件式を満たしていないものに対して実行したい処理を記述します。条件式に満たしていない時は何も処理を実行しない場合、elseは省略することが出来ます。
下記のサンプルコードでif~elseの挙動を確認してみましょう。
<?php
$score = 90;
if($score > 80){
echo '高得点!';
} else {
echo 'もう少し!';
}
?>
スコアが80点以上の場合は「高得点!」をそれ以外の場合は「もう少し!」が出力される条件分岐です。変数scoreに90点が代入されているので条件式を満たし「高得点!」が出力されます。
では、変数scoreに70点が代入されている場合はどうでしょうか?この場合、条件式を満たしていないため「もう少し!」が出力されます。
else if
続いてelse if文の書き方・使い方について紹介します。先ほど紹介したif~elseでは条件に満たしているか満たしていないかの2通りしか分岐出来ませんでした。
このelse if文を使うことで、if文の条件分岐に満たしていない場合は次の条件式で比較することができ、より詳細な絞り込みをすることが出来ます。
<?php
$score = 70;
if(条件式1){
// 条件式1を満たした時に実行する処理を記述
} else if(条件式2) {
// 条件式2を満たした時に実行する処理を記述
} else{
// 条件式1と条件式2を満たしていない時に実行する処理を記述
}
?>
ifの後にelse if文を記述します。使い方はif分と全く同じで()内に条件式を記述します。
if~else文のサンプルコードを改良して、else if文の挙動を確認しましょう。
<?php
$score = 70;
if($score > 80){
echo '高得点!';
} else if($score > 60) {
echo 'あと少し!';
} else{
echo '頑張ろう!';
}
?>
if~elseの時は80点以上かそれ以外の2通りでしたが、今回は60点以上の条件を追加しました。
今回は変数scoreに代入されている値が70点なので、最初の条件式($score > 80)は満たしていないので、else ifの条件式($score > 60)に移動します。この条件には60点より上であれば満たしているので、else if内に記述されている「あと少し!」が出力されます。
条件式が複数ある場合
今までは条件式が一つだけでしたが、論理演算子のOR条件とAND条件を使うことで複数の条件式を組み合わせることもできます。
OR条件とは複数ある条件式のうち、どれか一つでも満たしていれば条件を満たしたことになり{}内の処理を実行します。
OR条件の使い方は条件式と条件式を「||」で繋ぎます。
if(条件式1 || 条件式2 || 条件式3){
// 条件式1・条件式2・条件式3のいずれかを満たせば処理を実行
}
AND条件とは複数ある条件式のうち、全ての条件を満たす必要があります。例えば条件式が3つあった時に2つの条件は満たしているけど、1つだけ条件を満たしていなかったとします。この場合は条件を満たしていないことになり、次のelse ifやelseに移動します。
AND条件の使い方は条件式と条件式を「&&」で繋ぎます。
if(条件式1 &&条件式2 && 条件式3){
// 条件式1・条件式2・条件式3の全てを満たせば処理を実行
}