elseif
elseif文
elseif文もif文の拡張機能で、if文以外に条件式を増やす事ができます。
elseif文もelse文と同様に、if文の条件式がFALSEの場合に別の処理を実行するようにif文を拡張しますが、else文とは異なりif文の条件式がFALSEの場合即座に処理を実行する訳ではありません。elseif文ではelseifに設定されている条件式がTRUEの場合にのみ代わりの処理を実行します。
分かりやすくいうと、「もし○○なら××の処理をし、もし△△なら□□の処理をする」という事で、つまり条件が増えただけです。
基本の構文
(条件式)の部分がTRUEであれば処理を実行し、FALSEであれば実行せずに無視します。
if( 条件式 ){
TRUEの時の処理;
}
elseif( 条件式2 ){
if式がFALSEであり条件式2がTRUEの時の処理
}
else{
すべてFALSEの時の処理;
}
実際の使用例です。
<?php
$a = 3;
$b = 3;
if( $a > $b ){
echo '$aは$bよりも大きい。';
}
elseif( $a == $b ){
echo '$aと$bは等しい。';
}
else{
echo '$aは$bよりも小さい。';
}
?>
出力結果
複数のelseif構文
同じif文でelseifは何回でも使えます。elseif文を複数使用した場合最初にTRUEと判定されたelseif文が実行されます。
また、「elseif」ではなく「else if」と2つの単語に分けて書く事もできます。ちなみにC言語では2単語の「else if」だそうです。さらにどうでもいい話ですが、私も普段は2単語の方です^^。
<?php
$a = 3;
if( $a == 1 ){
echo '$aは1です';
}
else if( $a == 2 ){
echo '$aは2です';
}
else if( $a == 3 ){
echo '$aは3です';
}
?>
出力結果
elseif文はその文の前にあるif式・elseif式がすべてFALSEであり、その文のelseif式がTRUEである場合に初めて実行されます。
ちなみに、elseif文を書いたからといって、elseは必ずしも入れなくてはいけないわけではありません。elseとelseifはどちらもif文の拡張機能なので書いても書かなくてもOKです。
ネスト(入れ子)構造
elseif文はif文と同様ネストする事ができます。つまり、if文の中にさらにif文やelseif文をを入れる事ができるという事になります。
<?php
$a = 3;
if( $a > 1 ){
//elseif文のネスト
if( $a == 2 ){
echo '$aは2である';
}
elseif( $a == 3 ){
echo '$aは3である';
}
else{
echo '$aは3以上である';
}
}
?>
出力結果
上のサンプルの場合、まず$aが1より大きい場合に初めて$aの値の検証が行われ、$aが2か3かそれ以上か判定します。
この場合は「もし○○なおかつ××なら△△、○○なおかつ□□なら☆☆、○○だけれども××でも□□でもなければ※※・・・」というかんじでしょうか。すでに文章で書くほうがややこしいですねww。
このようにelseif文の処理をネストする事によってより複雑な条件式を作る事ができます。この他にもif文の拡張としてelseが用意されていますのでそちらもご覧下さい。


