在PHP中的elseif块中省略最后的else语句是否可以。这段代码好吗
if ( condition ):
// code
elseif ( othercondition ):
// more code
endif;
或者最后还有其他吗?
if ( condition ):
// code
elseif ( othercondition ):
// more code
else
// more code
endif;
我确定它一定是,但我无法在任何地方得到确认。编辑 - 我已经尝试了它并且它有效但我只是想确定。
答案 0 :(得分:13)
如果您不需要最终else
- 阻止,请不要写一个。拥有一段不需要的代码块(可能只包含this is useless
- 注释)是毫无意义的。
答案 1 :(得分:4)
虽然@ oezi的回答是100%正确的,但我还要补充最佳做法,else
条件应在所有情况下使用。这并不意味着您必须逐字地使用else
块,因为您可以通过将“else code”放在if
之前来逻辑地完成相同的操作。例如:
$foo = 'baz';
if (...) {
$foo = 'foo';
} else if (...) {
$foo = 'bar';
}
......在功能上等同于:
if (...) {
$foo = 'foo';
} else if (...) {
$foo = 'bar';
} else {
$foo = 'baz';
}
我认为在阅读代码时使用else
会更清楚,但无论哪种方式都可以。请记住,完全忽略第三种情况是导致错误的常见原因(在某些情况下甚至是安全漏洞)。