代码之家  ›  专栏  ›  技术社区  ›  Theodore R. Smith

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

  •  144
  • Theodore R. Smith  · 技术社区  · 14 年前

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

    Zend是否有一个可接受的“标准”来使用?

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

    2 回复  |  直到 10 年前
        1
  •  191
  •   Daniel Vandersluis    14 年前

    PHP manual :

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

    本质上,他们的行为是一样的,但是 else if 在技术上相当于这样的嵌套结构:

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

    手册还指出:

    请注意,Elseif和Elseif仅在使用上例中的花括号时被认为完全相同。当使用冒号定义if/else if条件时,不能将else if分隔为两个单词,否则PHP将失败并出现解析错误。

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

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

    任何一个 elseif 否则如果 可以使用。但是,如果使用 alternate syntax 你必须使用 艾利夫 :

    if (first_condition):
      // ...
    elseif (second_condition):
      // ...
    endif;
    
        2
  •  42
  •   James Cowhen    10 年前

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

    Zend2和Symfon2已经跟随PSR-0。

    没有硬性和快速的风格规则,但你可以尝试和遵循尽可能多的PSR-2。

    在PSR-2中有一个关于“如果与Elseif”的评论:

    应使用关键字else if而不是else if,以便 控件关键字看起来像单个单词。

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

    其中一些建议就是,建议。是否用其他的if或else if取决于你。