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

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

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

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

从PHP手册 :

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

从本质上讲,它们的行为是一样的,但是else if在技​​术上等同于如下所示的嵌套结构:

 if (first_condition) { } else { if (second_condition) { } } 

手册还指出:

请注意elseif,否则如果在使用大括号时仅考虑上面的例子。 当使用冒号定义if / elseif条件时,如果分成两个单词,则不能将其他单独分隔,否则PHP将失败,并出现分析错误。

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

 if (first_condition) { } elseif (second_condition) { } 

else if可以使用。 但是,如果使用替代语法 ,则必须使用elseif

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

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

Zend2和Symfony2已经遵循PSR-0。

对于风格没有硬性规定,但你可以尝试尽可能多地遵循PSR-2。

在PSR-2中,如果vs elseif有一个评论:

如果所有的控制关键字看起来像单个单词,那么应该使用关键字elseif。

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

其中一些build议就是这个build议。 是否使用else if或elseif取决于您