【PHP】elseif文(複数の条件分岐)について解説

条件分岐の分岐が1つの場合はif文を使用しますが、複数の分岐処理をする場合はelseif文を使用します。

elseif分はif文と合わせて使うので、if(+else)文をまだご存知でない方は次の関連記事も合わせてご覧ください。

それでは複数の条件分岐elseif文について解説します。

elseif文とは

elseif文はif文、else文と同様に条件によって処理を分岐させる場合に、if文と合わせて使用します。

if文と同様に条件式を持ち、条件式の結果が真(true)の場合のみ、続く括弧の中の処理を実行します。

そして、elseif分はif、elseと異なり、1つの条件分岐で複数個記述することが可能なので、必要な分岐をいくらでも追加することが可能です。

elseif文の構文

elseif文はif文と合わせて使用します。

具体的な構文は次のようになります。

if( 条件式1 ) {
    // 条件式1が真(true)の場合に実行する処理
} else if( 条件式2 ) {
    // 条件式2が真(true)の場合に実行する処理
} else if( 条件式3 ) {
    // 条件式3が真(true)の場合に実行する処理
} else {
    // 上記の条件式が全て偽(false)の場合に実行する処理
}

if文の括弧{}の後ろに続けて記述する『else if {}』がelseif文です。

なお、else文は必要がなければ記述しなくても構いません。

elseif文の使用例

時間に合わせたあいさつを出力するソースコードを例にみていきましょう。

ソースコード

<?php

// 時間
$hour = 15;

// 時間別のあいさつを出力
if( $hour < 6 ) {
    echo "早起きですね\n";
} else if( $hour < 11 ) {
    echo "おはようございます\n";
} else if( $hour < 17 ) {
    echo "こんにちは\n";
} else {
    echo "こんばんわ\n";
}

?>

実行結果

こんにちは

$hourに15という時間が記憶されており、その後のif-elseif-else文で処理を分岐させています。

if-elseif-else文の条件分岐の判定は上から順に条件式がtrueか判定していきます。

ここでは初めにif文の条件式を判定し、($hour < 6)はtrueではないため、次のelseif文の条件式を判定し、($hour < 11)もまたtrueではないため、次の2つ目のelseif文の条件式を判定し、($hour < 17)でtrueになるため、括弧内の処理を実行するという流れです。

$hourのデータによって、あいさつ文の出力を分岐させて変えることができるので、是非、それぞれのあいさつ文を出力するようソースコードを変更してみてください。

まとめ

if-elseif-else文は複数の条件分岐をしたい場合に使用します。また、ここでの例は合計4パターンに分岐していますが、elseifの部分は好きなだけ数を増やすことができます。

頻繁に使う構文なので是非、習得していきましょう。