【问题标题】:Probability in conditional statements条件语句中的概率
【发布时间】:2012-07-16 15:56:39
【问题描述】:

让我们取一个名为 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 中这样做,它显然在那里工作得更快。其他语言呢?

【问题讨论】:

  • 使用 PHP 这样的高级语言,您可能永远不必担心这样的微小细节。
  • 在事情的偏执狂方面,如果您的机器容易出现内存故障,!= 可能更安全,因为错误可能导致数组长度被报告为负数......紧随其后由于自发的无端现实失败

标签: php if-statement conditional-statements


【解决方案1】:

最可能的条件应该在顶部。这样,解析器会跳过不太可能的情况,从而获得过度优化的应用程序。

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

【讨论】:

  • 谢谢。您能否提供有关此的任何来源/链接?
  • @RLV:不,我说的是经验。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 2014-04-29
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    相关资源
    最近更新 更多