【问题标题】:In PHP, does elseif need a final else statement?在 PHP 中,elseif 是否需要最后的 else 语句?
【发布时间】:2012-08-03 05:59:27
【问题描述】:

是否可以在 PHP 的 elseif 块中省略最后的 else 语句。这段代码可以吗

if ( condition ):
   // code
elseif ( othercondition ):
   // more code
endif;

或者最后应该有其他的吗?

if ( condition ):
   // code
elseif ( othercondition ):
   // more code
else
   // more code
endif;

我确定它一定是,但我无法在任何地方得到确认。编辑 - 我已经尝试过了,它可以工作,但我只是想确定一下。

【问题讨论】:

  • 那里有代码——试试吧。
  • @arxanas 我不认为尝试它可以保证知道它没问题,对吗?
  • 您可以完全忽略 else 条件,但从概念上讲,拥有一个总是更好。
  • @JérômeBoé 和 Raisch 都不正确。其他都是正确的。
  • @Asaph - 问题是:在 PHP 中,elseif 是否需要最后的 else 语句? - 我的答案是:不需要。 - 所以告诉我我哪里错了。

标签: php if-statement


【解决方案1】:

如果您不需要最终的else-block,请不要写。有一段不需要的代码(可能只包含一个this is useless-comment)是没有意义的。

【讨论】:

    【解决方案2】:

    虽然@oezi 的回答是100% 正确的,但我还要补充一点,关于最佳实践else 条件应该 用于所有情况。但这并不意味着您必须从字面上使用else 块,因为您可以通过将“其他代码”放在if 之前从逻辑上完成同样的事情。例如:

    $foo = 'baz';
    
    if (...) {
        $foo = 'foo';
    } else if (...) {
        $foo = 'bar';
    }
    

    ...在功能上等同于:

    if (...) {
        $foo = 'foo';
    } else if (...) {
        $foo = 'bar';
    } else {
        $foo = 'baz';
    }
    

    我认为else 的使用在阅读代码时更加清晰,但无论哪种方式都可以。请记住,完全忽略第三种情况是导致错误的常见原因(在某些情况下,甚至是安全漏洞)。

    【讨论】:

    • 谢谢,这就是我问这个问题的原因,我没有经常看到它这样做,所以我认为这是有原因的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    相关资源
    最近更新 更多