PHPの「else if」と「elseif」の違いは?どう使い分ける?

PHPプログラミングの条件分岐では、複数分岐に「else if」と「elseif」の2通りの書き方があります。どちらを使っても動作は同じに見えますが、実は注意点があります。

そこで今回は、「else if」と「elseif」の違いや注意点、使い分けの方法について解説していきます。今まで気にせず使っていた人も、この機会にぜひご覧ください。

PHPの「else if」と「elseif」の違い

PHPの条件分岐(if文)で複数の条件で分岐させたいときに使うのが、「else if」と「elseif」です。

条件分岐で使う際の役割に違いはありません。どちらが正解ということもありません。基本的に、全く同じだと考えて良いでしょう。しかしそれは、条件分岐のif文に「{ }(波括弧)」を使用した場合に限られてしまいます。

PHPの「else if」は「:(コロン)」を使えない

PHPの条件分岐に「:(コロン)」を使い、複数条件の分岐に「else if」を使うと「Parse error」になってしまいます。

条件分岐に「:(コロン)」を使いたい場合には、複数条件の分岐には「elseif」を使いましょう。また、複数条件の分岐に「else if」を使いたい場合には、条件分岐には「{ }(波括弧)」を使いましょう。

なお、「elseif」の場合、条件分岐に「:(コロン)」と「{ }(波括弧)」の両方とも使えます。特にこだわりがなければ、「elseif」を使うことで、エラーの数を減らすことができるかもしれません。

PHPの「else if」と「elseif」の動作を確認

実際に「else if」と「elseif」の動作に違いがないかの確認をしてみましょう。

まずは、PHPソースコードの条件分岐に「{ }(波括弧)」を使った際の「else if」の動作を確認してみましょう。

出力結果
よくできました。

問題なく、複数分岐内の処理が出力されました。

PHPソースコードの条件分岐に「{ }(波括弧)」を使ったまま、「else if」を「elseif」に変更した動作も確認してみましょう。

出力結果
よくできました。

こちらも問題なく、複数分岐内の処理が出力されました。

上記サンプルコードの通り、PHPソースコードの条件分岐に「{ }(波括弧)」を使った際の「else if」と「elseif」の動作に違いはありませんでした。

次に、PHPソースコードの条件分岐に「:(コロン)」を使った際の「else if」の動作を確認してみましょう。

出力結果
Parse error: syntax error, …

複数分岐内の処理が出力されるはずですが、パースエラーとなりました。

PHPソースコードの条件分岐に「:(コロン)」を使ったまま、「else if」を「elseif」に変更した動作も確認してみましょう。

出力結果
よくできました。

こちらは問題なく、複数分岐内の処理が出力されました。

上記サンプルコードの通り、PHPソースコードの条件分岐に「:(コロン)」を使った際には、「else if」はパースエラーとなり、「elseif」は正常に動作しました。

条件分岐には「{ }(波括弧)」と「:(コロン)」のどちらを使うべきか

条件分岐に「:(コロン)」を使うと「else if」を使ったときに、パースエラーになってしまうことは理解できたと思います。それでは、PHPプログラミングの条件分岐には、「{ }(波括弧)」と「:(コロン)」のどちらを使うべきなのでしょうか?

一見、「else if」と「elseif」の両方で使える「{ }(波括弧)」一択のように思えるかもしれませんが、そうとも限りません。

条件分岐に「:(コロン)」を使った方がソースコードがすっきりして、可読性が高まるともいえます。可読性の高いソースコードの方が、処理を追いやすくなるので保守性も向上します。

しかし、システム開発の現場では、他のプログラミング言語の経験者も多く、条件分岐に使うのは、「{ }(波括弧)」の方が一般的だといえます。

他の処理の条件分岐は「{ }(波括弧)」を使っているのに、一部の条件分岐は「:(コロン)」を使っているのは可読性の高いソースコードとはいえません。また、馴染みのある書き方の方がソースコードを追いやすいですし、条件分岐の範囲が括弧で囲まれている方が、わかりやすい人も多いでしょう。

つまり、複数人で行うシステム開発の現場では、「{ }(波括弧)」を使う方が無難だといえます。個人で開発・管理しているのであれば、好みに合った方を選択しても問題ないでしょう。

なお、「else if」と「elseif」のどちらを使うべきかについては、見た人にソースコードの意味が伝わらないことはないはずなので、どちらでも良いでしょう。もちろん、パースエラーにならない「elseif」を使った方が無難だとはいえますね。

まとめ

PHPの条件分岐で使う「else if」と「elseif」に大きな違いはありません。ただし、条件分岐に「{ }(波括弧)」ではなく、「:(コロン)」を使う場合には注意が必要です。

条件分岐を「:(コロン)」で書いて、複数分岐に「else if」を使うとパースエラーになってしまいます。特に理由がなければ、条件分岐には「{ }(波括弧)」を使い、複数分岐には「elseif」を使いましょう。これが複数人で行うシステム開発現場の、スタンダードな書き方だといえます。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?