2

让我们取一个名为 someInt 的变量,它可能有任何数值。我们需要检查它是否为0。

if($someInt!=0) {
  // someInt is not 0, this is the most probable
} else {
  // someInt is 0.
}

//VS

if($someInt==0) {
  // highly unlikely... perform a jump
} else {

}

哪种方式更优?有什么区别(除了可读性)?

我想知道的另一种相关的事情:我有一个习惯检查数组是否有这种方式:

if($myArray.length != 0) {

}
 // instead of
if($myArray.length > 0) {

}

注意“!=”。由于 array.length 只能为 0 或大于 0,“!=”检查是否更优化?我问这个是因为我一直在 Visual Basic 6 中这样做,它显然在那里工作得更快。其他语言呢?

4

2 回答 2

3

最可能的条件应该在顶部。这样,解析器会跳过不太可能的情况,并且您会得到一个过度优化的应用程序。

您的第二个问题是微优化。我怀疑它会在性能方面以一种或另一种方式产生影响。

于 2012-07-16T15:59:27.983 回答
0

对于 if 语句来说,这种情况越有可能在 if 语句中越靠前,从可读性的角度来看,这更有意义,从性能的角度来看也是如此。至于数组部分 $array.length > 0 更具可读性。但是,性能应该不是问题,因为不应该经常调用它,缓存结果比不断检查数组长度要好。

于 2012-07-16T15:59:14.157 回答