“elseif”和“else if”完全是同义词吗?

时间:2010-09-07 20:23:17

标签: php syntax

elseifelse if完全是同义词,还是有区别?

Zend是否有一个可以使用的“标准”?

虽然我个人不喜欢在代码中看到elseif,但我只需要知道它们是否是同义词,并且PHP手册不是最容易搜索的。

3 个答案:

答案 0 :(得分:193)

来自PHP manual

  

在PHP中,您还可以编写'else if'(两个单词),其行为与'elseif'(单个单词)中的行为相同。句法意义略有不同(如果你熟悉C,这是相同的行为),但底线是两者都会导致完全相同的行为。

基本上,它们的行为相同,但else if在技术上等同于嵌套结构,如下所示:

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

手册还注明:

  

注意elseif和else if在使用花括号时只会被认为完全相同,如上例所示。使用冒号来定义if / elseif条件时,如果是两个单词,则不能将else分开,否则PHP将因解析错误而失败。

这意味着在正常的控制结构形式中(即使用大括号):

if (first_condition)
{

}
elseif (second_condition)
{

}

可以使用elseifelse if。但是,如果您使用alternate syntax,则必须使用elseif

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

答案 1 :(得分:42)

框架互操作性组(FIG)由包含Zend(https://github.com/php-fig/fig-standards#voting-members)开发人员的成员组成,汇集了一系列标准建议(PSR - #)。

Zend2和Symfony2已经跟随PSR-0。

对于样式没有严格的规则,但你可以尝试尽可能多地遵循PSR-2。

如果在PSR-2中vs elseif,则会对else发表评论:

  

如果是全部,则应该使用关键字elseif而不是else   控制关键字看起来像单个单词。

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

有些建议就是建议。是否使用else if elses

取决于你

答案 2 :(得分:0)

是的,“elseif”和“else if”都是同义词,意思和意义都一样。您可以将“else if”与“elseif”混用。

For Example - We can use "else if" and "elseif" together.
if($condition){
  ...
}
else if($condition){
  ...
}
elseif($condition){
  ...
}

Nested:
if($condition){
  ...
}
else if($condition){
  if($condition){
    ...
  }
  elseif($condition){
    ...
  }
}