在PHP中计算布尔变量:应该使用If/Else还是Switch?

在PHP中计算布尔变量:应该使用If/Else还是Switch?,php,boolean,switch-statement,if-statement,Php,Boolean,Switch Statement,If Statement,我喜欢让自己陷入这种荒谬的境地,我过度评估了自己的编码实践,所以就这样吧 这个问题可能超越了PHP(以及理智)。在计算布尔变量时,以下哪项是最佳实践?(假设三元结构中有太多的//do stuff) 或 我更感兴趣的是性能和/或特质方面的考虑,而不是像“如果/否则看起来更好”、“始终使用开关”或“做你认为正确的事”这样的笼统陈述 也就是说,除非真的没有区别。使用if-else版本。这很清楚,也很容易理解 除非要打开多个(>2)值,否则不应该真正使用switch。在这种情况下,使用switch没有任

我喜欢让自己陷入这种荒谬的境地,我过度评估了自己的编码实践,所以就这样吧

这个问题可能超越了PHP(以及理智)。在计算布尔变量时,以下哪项是最佳实践?(假设三元结构中有太多的
//do stuff

我更感兴趣的是性能和/或特质方面的考虑,而不是像“如果/否则看起来更好”、“始终使用开关”或“做你认为正确的事”这样的笼统陈述


也就是说,除非真的没有区别。

使用
if-else
版本。这很清楚,也很容易理解

除非要打开多个(>2)值,否则不应该真正使用
switch
。在这种情况下,使用switch没有任何好处(除了使代码变得不易理解)

如果性能有任何差异,则
If-else
版本会更快,尽管如果有任何差异,它实际上可以忽略不计


这将是一个微观优化,如果有的话。不要这样做。在对代码进行任何“优化”之前,请对其进行分析并确定瓶颈

以防万一,您还应该检查您的变量是否真的是布尔值(而不是“”、0或null,也可能计算为false)


为什么人们对这些事情的表现如此挑剔?谢谢。值得一提的是,我不是在事后分析我的代码,而是想“伙计,我想知道什么会更快。”这更像是“在一开始编写条件时我应该怎么做。”
else{throw FileNotFoundException}
if ($bool) {
    // do true stuff
} else {
    // do false stuff
}
switch ($bool) {
    case true:
        // do true stuff
        break;
    default:
        // do false stuff
        break;
}
if($bool === false) {
 // false stuff
} else if($bool === true) {
 // true stuff
} else {
 /// WTF???
}