在php中,是这样的:
$ifTrue = ((1 == 1) and (2 == 2));
if ($ifTrue) {
echo "derp";
}
比这更贵:
if ((1 == 1) and (2 == 2)) {
echo "derp";
}
我已经将条件表达式存储在变量中以清理多行if语句。到目前为止,我发现性能没有差异。但我的感觉是,因为我通过这样做在内存中保留了一个位置,所以我逐渐吃掉了内存,对于大脚本来说,这可能会对性能产生很大影响,而这可能是未被发现的。
后续问题:javascript或perl等其他语言的费用是否有任何差异?
答案 0 :(得分:3)
首先:过早优化总会引发麻烦。如果您不了解某些条件,请不要尝试这样做。
接下来,您的答案取决于具体情况。例如,您的表达将被使用多少次?示例:让它成为:
$foo = very_expensive_function_here();
if($foo)
{
}
//
if($foo && something_else_1())
{
}
//...
if($foo && something_else_1000())
{
}
- 在这种情况下,你将获得极高的速度提升,因为你将摆脱1000个昂贵的函数执行时间。
但是,如果你的案子只是单身&简单的bool表达?那么这一切都没有意义 - 如果你可以动态地评估表达式并且一次就可以使用临时变量?