if文で複数の条件式を使う方法
if 文を使用すると、条件式が TRUE か FALSE かによって実行する処理を分けることができます。さらに、複数の条件を扱いたい場合は elseif を組み合わせることで、より柔軟に処理を分岐できます。ここでは PHP の if 文で複数の条件分岐を行う方法について解説します。
目次
複数の条件式を使う
ここまでの if 文では 1 つの条件式を使用していましたが、 if..elseif 文を使用することで複数の条件式を記述できます。
if (条件式1){
条件式1が TRUE の時に実行する処理
・・・
}elseif (条件式2){
条件式1が FALSE で条件式2が TRUE の時に実行する処理
・・・
}
この書式の場合、最初に条件式1が評価され、 TRUE だった場合はすぐ下のブロック内の処理が実行されます。条件式1が FALSE だった場合、今度は条件式2が評価され、 TRUE だった場合はすぐ下のブロック内の処理が実行されます。
elseif の部分は必要な数だけ記述することができます。
if (条件式1){
条件式1が TRUE の時に実行する処理
・・・
}elseif (条件式2){
条件式1が FALSE で条件式2が TRUE の時に実行する処理
・・・
}elseif (条件式3){
条件式1と条件式2が FALSE で条件式3が TRUE の時に実行する処理
・・・
}
注意点として、どこかの条件式が TRUE となった場合は他の条件式は評価されないことです。例えば条件式1 が TRUE の場合は、すぐ下のブロック内の処理は実行されますが、条件式2や条件式3は評価されません。同じ if 文の中で実行される可能性があるブロックは 1 つだけです。
またこれまでも使用してきた else を使うことで、すべての条件式が FALSE だった場合に実行する処理を記述できます。
if (条件式1){
条件式1が TRUE の時に実行する処理
・・・
}elseif (条件式2){
条件式1が FALSE で条件式2が TRUE の時に実行する処理
・・・
}elseif (条件式3){
条件式1と条件式2が FALSE で条件式3が TRUE の時に実行する処理
・・・
}else{
すべての条件式が FALSE の時に実行する処理
・・・
}
実際には次のように記述します。
$result = 68;
if ($result > 80){
echo "成績は優です";
}elseif ($result > 70){
echo "成績は良です";
}elseif ($result > 60){
echo "成績は可です";
}else{
echo "成績は不可です";
}
この場合は、成績の点数によって出力する結果を変更しています。複数の条件式を使用する場合は、記述する順番に注意してください。
では簡単なプログラムで試してみます。
<?php
$result = 68;
echo "点数は ", $result, "です、";
if ($result > 80){
echo "成績は優です";
}elseif ($result > 70){
echo "成績は良です";
}elseif ($result > 60){
echo "成績は可です";
}else{
echo "成績は不可です";
}
作成したプログラムを sample.php として保存しました。その後でコマンドプロンプトを起動し、次のように実行しました。
php sample.php
複数の条件式を使って、出力する処理を分けています。
-- --
PHP の if 文で複数の条件分岐を行う方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。