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

2022-08-30 06:25:12

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

Zend是否有一个公认的“标准”来使用哪一个?

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


答案 1

PHP 手册中可以看出:

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

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

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

该手册还指出:

请注意,elseif 和 else if 只有在使用大括号时才会被视为完全相同,如上面的示例所示。当使用冒号来定义 if/elseif 条件时,如果将 else 分隔成两个单词,则不得将 else 分隔开来,否则 PHP 将失败并显示解析错误。

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

if (first_condition)
{

}
elseif (second_condition)
{

}

可以使用。但是,如果使用备用语法,则必须使用 :elseifelse ifelseif

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

答案 2

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

Zend2 和 Symfony2 已经遵循 PSR-0。

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

在PSR-2中有一个关于 else if vs elseif 的评论:

如果使所有控件关键字看起来像单个单词,则应使用关键字 elseif 而不是 else。

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

有些建议就是这样,建议。这取决于你是否使用其他如果或否则


推荐