php - if条件的效率 - 嵌套还是使用AND方法?

时间:2013-07-01 08:25:15

标签: php performance if-statement

在php中,你可以使用嵌套的If结构,或者你可以使用&&组合条件。方法......在性能/效率方面有任何已知的差异吗? (已知/建立的是更快,或资源更少的资源等吗?)

嵌套:

if ($X == $Y) {
    if ($N >= $P) {
        if ($tt != true) {
            // do something
        }
    }
}

或与AND结合:

if ($X == $Y  &&  $N >= $P  &&  $tt != true) {
    // do something
}

我知道这似乎是重复的 PHP Nested Ifs vs Single If with Multiple Conditions
但那是因为它没有得到真正的回答(相反人们与Java中的东西相关联等)。

所以请不要将此标记为欺骗,或链接到非php问题的答案等。

2 个答案:

答案 0 :(得分:2)

谈到效率,我认为两者都没有任何区别。即使一个行语句中的一个布尔决策为false,其余的决策也不会被评估,嵌套的if语句也会发生类似的事情。

但可读性和清晰度绝对重要。对于每个单独的条件进行嵌套将使代码不必要地冗长,而一行中的许多语句将使得难以遵循,因为长的水平语句看起来有点不清楚。我尝试将相关条件保持为多个if语句和具有不同概念的条件作为嵌套if语句。

答案 1 :(得分:1)

如果您遇到可能由if子句引起的性能问题,则不应使用像php这样的脚本语言,或者至少使用某种缓存(例如APC)。

在“正常”情况下,您将看不到嵌套与非嵌套的任何差异。如果你使用数百万的ifs,你可能会看到一个微小的差别。