プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、「else if」と「elseif」の違い
PHPでは、if文を書く際に「else if」と「elseif」のどちらも使えます。

if($num === 1){
    print"1だよ";
}else if($num === 2){
    print"2だよ";
}else{
    print"それ以外だよ";
}

とも書けますし

if($num === 1){
    print"1だよ";
}elseif($num === 2){
    print"2だよ";
}else{
    print"それ以外だよ";
}

とも書けるのです。

結果だけ見ると同じように見えるのですが、
これって何か違いがあるの(--?と気になったのが今回のきっかけです。

それでは早速調べてみましょう(--)b

ふむふむ(--)

違いは、あるといえばあるけど、ないといえばないみたいですね。
else if」は「if ~ else ~ 」の入れ子と同じなのだそうです。

if($num === 1){
    print"1だよ";
}else if($num === 2){
    print"2だよ";
}else{
    print"それ以外だよ";
}



if($num === 1){
    print"1だよ";
}else{
    if
($num === 2){
        print"2だよ";
    }else{
        print"それ以外だよ";
    }
}

と書いたのとまったく同じってことですね。

それに対して「elseif」は文字通り「if」と「else」がくっついたものです。
「前の条件に一致せずelseifの条件に一致する場合」を表します。

ふむふむ(--)
何となく理解しました。

else if」を使った方は

「$num === 1」?あっ、違うんだ。それなら「$num === 2」?それともそれ以外?

と訊くのに対し「elseif」を使った方は

「$num === 1」?それとも「$num === 2」?それともそれ以外?

と訊くってことですね。

……同じじゃねーか(-A-)

ということで、どちらを使っても大差ないようですが、一つだけ注意事項があります。
それは、コロンを使った場合は「elseif」じゃないと駄目!ということです。
PHPのif文は、波括弧を使って

if($num === 1){
    print"1だよ";
}else{
    print"それ以外だよ";
}

とも書けますし、コロンを使って

if($num === 1):
    print"1だよ";
else:
    print"それ以外だよ";
endif;

とも書けます。
この「:」を使った記述では「elseif」を使わないと駄目なのです。
else if」を使うとエラーになります。

if($num === 1):
    print"1だよ";
elseif($num === 2):
    print"2だよ";
else:
    print"それ以外だよ";
endif;

は動きますが

if($num === 1):
    print"1だよ";
else if($num === 2):
    print"2だよ";
else:
    print"それ以外だよ";
endif;

はエラーになりますよ。

なるほど(--)
それなら「elseif」を使うように癖を付けておいた方が良さそうですね(--ゞ

最後にもう一度まとめると

(1) 「else if」と「elseif」の違いは、あるといえばあるけど結果だけ見れば同じ
(2) 「else if」は「if ~ else ~ 」の入れ子と同じ
(3) if文を「if{ ~ }」(波括弧)ではなく「if: ~」(コロン)で書く際は「elseif」じゃないと駄目

です。
(3)の理由により「elseif」を使うようにした方が無難だと思います。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事