“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。
其中一些build议就是这个build议。 是否使用else if或elseif取决于您