[英]Evaluating a boolean variable in PHP: Should one use If/Else or Switch?
我喜欢让自己陷入这些荒谬的情况,在这些情况下我对我的编码实践进行了过高的评估,所以这里就来了!
这个问题可能超越了PHP(以及理智)。 在评估布尔变量时,哪种最佳实践? (假设有太多//do stuff
三元操作)
if ($bool) {
// do true stuff
} else {
// do false stuff
}
要么
switch ($bool) {
case true:
// do true stuff
break;
default:
// do false stuff
break;
}
我对性能和/或特质性注意事项更感兴趣,而不是像“如果/其他看起来更好”,“始终使用Switch”或“做正确的事”之类的笼统声明。
也就是说,除非真的没有区别。
使用if-else
版本。 这非常清楚且易于理解。
除非您有多个(> 2)值可以打开,否则不应真正使用switch
。 在这种情况下,使用switch不会获得任何收益(除了使您的代码难以理解之外)。
如果性能上有任何差异,则if-else
版本会更快,尽管如果有任何差异,则实际上可以忽略不计。
如果有的话,这将是微优化。 不要这样 在对代码进行任何“优化”之前,先对其进行概要分析并确定瓶颈。
为了以防万一,您还应该检查您的变量是否确实是布尔值(而不是“”,0或null,其值也可能为false)
if($bool === false) {
// false stuff
} else if($bool === true) {
// true stuff
} else {
/// WTF???
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.