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

Ste*_*hen 0 php if-statement boolean switch-statement

我喜欢让自己陷入这些荒谬的境地,在那里我过度评估我的编码习惯,所以这里就是这样!

这个问题可能超越了PHP(以及理智).在评估布尔变量时,哪一个是最佳实践?(假设//do stuff三元过多)

if ($bool) {
    // do true stuff
} else {
    // do false stuff
}
Run Code Online (Sandbox Code Playgroud)

要么

switch ($bool) {
    case true:
        // do true stuff
        break;
    default:
        // do false stuff
        break;
}
Run Code Online (Sandbox Code Playgroud)

我对性能和/或特殊考虑更感兴趣,而不是像"If/Else看起来更好","总是使用Switch"或"做你认为合适的"这样的一揽子陈述.

也就是说,除非确实没有区别.

qua*_*oup 10

使用该if-else版本.它非常清晰易懂.

switch除非您有多个(> 2)值才能打开,否则不应该使用它.在这种情况下,你不会使用switch获得任何东西(除了使你的代码不易理解).

如果性能有任何差异,if-else版本会更快,但如果有任何差异,它实际上可以忽略不计.

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