4

哪种形式更高效

这个:

switch($var) {
  case 1:

    break;
  case 2:

    break;
}

..或这个:

if( $var === 1 ) {

} elseif( $var === 2 ) {

}

在性能方面?

4

3 回答 3

23

性能方面完全无关紧要。

正如PHPBench所示,即使有 1,000 次操作,两者之间的差异也只有 188 微秒,即百万分之 188 秒。PHP 代码通常有更大的瓶颈:单个数据库调用通常需要数十毫秒,即数万倍。

使用您喜欢的任何一个,并且哪个对您的代码的可读性更好 - 对于许多检查,很可能是switch.

于 2013-04-09T13:27:40.460 回答
2

这种微尺度的性能根本无关紧要。使用更适合您的上下文的那个。可读性和可维护性远比性能重要。

于 2013-04-09T13:27:33.977 回答
1

它不是关于性能,它更多关于需求!

有时你希望在你的 if 条件下发生一些事情,否则,它会去 else。

如果您有很多要比较的值,可以使用 Switch

于 2013-04-09T13:27:10.213 回答