条件存储在变量中的费用(php)

时间:2013-11-06 14:34:21

标签: php

在php中,是这样的:

$ifTrue = ((1 == 1) and (2 == 2));
if ($ifTrue) {
  echo "derp";
}
比这更贵:

if ((1 == 1) and (2 == 2)) {
    echo "derp";
}

我已经将条件表达式存储在变量中以清理多行if语句。到目前为止,我发现性能没有差异。但我的感觉是,因为我通过这样做在内存中保留了一个位置,所以我逐渐吃掉了内存,对于大脚本来说,这可能会对性能产生很大影响,而这可能是未被发现的。

后续问题:javascript或perl等其他语言的费用是否有任何差异?

1 个答案:

答案 0 :(得分:3)

首先:过早优化总会引发麻烦。如果您不了解某些条件,请不要尝试这样做。

接下来,您的答案取决于具体情况。例如,您的表达将被使用多少次?示例:让它成为:

$foo = very_expensive_function_here();

if($foo)
{
}
//
if($foo && something_else_1())
{
}
//...
if($foo && something_else_1000())
{
}

- 在这种情况下,你将获得极高的速度提升,因为你将摆脱1000个昂贵的函数执行时间。

但是,如果你的案子只是单身&简单的bool表达?那么这一切都没有意义 - 如果你可以动态地评估表达式并且一次就可以使用临时变量?