【问题标题】:Variable Comparison vs Variable Declaration for Code Efficiency in PHPPHP中代码效率的变量比较与变量声明
【发布时间】:2021-05-21 10:40:35
【问题描述】:

我有以下代码,想知道哪种方法对 PHP 编译器更快。变量声明总是赋值,但会丢失检查。而检查仅在 $checked 评估为 false 时具有变量声明。

变量声明

$checked = false;
if($checkA == true){
    $checked = true;
}
if($checkB == true){
    $checked = true;
}
if($checkC == true){
    $checked = true;
}

变量比较

$checked = false;
if($checkA == true){
    if(!$checked){
        $checked = true;
    }
}
if($checkB == true){
    if(!$checked){
        $checked = true;
    }
}
if($checkC == true){
    if(!$checked){
        $checked = true;
    }
}

【问题讨论】:

  • 简而言之,由于每个测试都有 2 个 if,因此具有完全不必要的内部 if 的第二个样本效率较低。
  • 更简洁的是`$checked = ($checkA || checkB || checkC)
  • 此外,如果您担心这一级别的微观性能改进,您可能会浪费大量时间来获得几乎为零的收益
  • @RiggsFolly 好奇心比什么都重要,任何改进都值得吗? :)

标签: php performance


【解决方案1】:

在最好的情况下,它们都是相同的(3 次执行,比较排除跳跃)。 在更糟糕的情况下,第一个性能更高(6 对 7 次执行)

但最好是

$checked = false;
if($checkA || $checkB || $checkC){
    $checked = true;
}

在所有情况下,这都是一个可以忽略不计的性能问题。增益是如此之小 1/1000000000 s

【讨论】:

    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2017-10-05
    • 2016-08-26
    • 1970-01-01
    • 2023-03-06
    • 2012-08-05
    相关资源
    最近更新 更多