12

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

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

还是最后应该有别的?

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

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

4

2 回答 2

20

如果您不需要最终else块,请不要编写。拥有一个不需要的代码块(可能只包含一个this is useless注释)是没有意义的。

于 2012-08-02T21:27:52.973 回答
5

虽然@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在阅读代码时使用更清楚,但任何一种方式都可以。请记住,完全忽略第三种情况是导致错误的常见原因(在某些情况下,甚至是安全漏洞)。

于 2012-08-02T21:59:27.290 回答