「elseif」と「else if」は完全に同義語ですか?


170

あるelseifelse if完全に同義、または違いがあるのでしょうか?

Zendには、使用するための受け入れられた「標準」がありますか?

私は個人的にelseifコードを見るのが嫌いですが、それらが同義語であり、PHPマニュアルが検索するのが最も簡単ではないかどうかを知る必要があります。


10
else ifところで、他のすべての言語がを使用しているわけではありません。たとえば、VBも使用しElseIf、Rubyはを使用しelsifます。
Daniel Vandersluis

6
shell / bashはelifを使用します
knittl

7
Pythonはelifも使用します
gregghz

回答:


218

PHPマニュアルから:

PHPでは、 'else if'(2つの単語で)を記述することもでき、動作は 'elseif'(1つの単語で)の動作と同じになります。構文の意味は少し異なります(Cに精通している場合、これは同じ動作です)が、どちらの結果もまったく同じ動作になるということが重要です。

基本的に、これらは同じように動作しますが、else if技術的には次のようなネストされた構造と同等です。

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

マニュアルはまた注意します:

上記の例のように中括弧を使用する場合、elseifとelse ifはまったく同じと見なされることに注意してください。コロンを使用してif / elseif条件を定義する場合、else ifを2つの単語に分離しないでください。分離すると、PHPが解析エラーで失敗します。

つまり、通常の制御構造形式(つまり、中括弧を使用)では、

if (first_condition)
{

}
elseif (second_condition)
{

}

elseifまたはどちらかelse ifを使用できます。ただし、代替構文を使用する場合は、以下を使用する必要がありますelseif

if (first_condition):
  // ...
elseif (second_condition):
  // ...
endif;

18
サンプルスニペットを使用すると、うまくいきます。どちらかと言えば、PHPが単にelse ifとして扱われることを証明するために必要なのは、代替構文だけelse { if {です。
BoltClock

2
PHPはelse ifとして処理しませんelse { if {。そうしないと、処理できませんif (0) { } else if (0) { } else { }...
Guido Hendriks '10 / 07/15

4
@GuidoHendriks:一方が他方として扱われるのではなく、機能的に同等であるということです。あなたの例はネストされたフォームと同等if (0) { } else { if (0) { } else { } }です。最後のelseブロックにはあいまいさがないことに注意してください。これは常に完全なブランチの場合に当てはまります(すべてにifがあるelse)。
outis

参照用の別の例を次に示しますphp.net/manual/en/control-structures.elseif.php#115851
WhyAyala

代替synyaxでは、 'コロン'と内部のendifを覚えておかなければなりませんif ($v1='1'): do_thing(); else: if($v1='b' ): do_another_thing(); else: do_smthing_else(); endif; endif;if ($v1='1'): do_thing(); elseif($v1='b' ): do_another_thing(); else: do_smthing_else(); endif;
DDS

47

Zendの開発者(https://github.com/php-fig/fig-standards#voting-members)の開発者を含むメンバーで構成されるフレームワーク相互運用グループ(FIG)は、一連の標準的な推奨事項(PSR)をまとめたものです。 -#)。

Zend2とSymfony2はすでにPSR-0に準拠しています。

スタイルに厳格な規則はありませんが、PSR-2をできる限り試してみることができます。

PSR-2のelse ifとelseifに関するコメントがあります。

すべての制御キーワードが単一の単語のように見えるように、else ifの代わりにキーワードelseifを使用する必要があります(SHOULD)。

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else

いくつかの推奨事項は、単なる推奨事項です。else ifとelseifのどちらを使用するかはあなた次第です


4
キーワードを一語にまとめるガイドラインをご指摘いただき、誠にありがとうございます。
セオドアR.スミス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.