Php 哪个if语句更有效?

Php 哪个if语句更有效?,php,if-statement,Php,If Statement,下面哪个if语句在PHP中更有效: $A=@"llaweikj"; $B=@"aesrwh"; $C=@"uymy"; $D=@"xcvb"; if ( ($A==$B) && ($C==$D) ) { //Do something with it } 或 什么更有效率?在你的问题中,两种说法是不同的 在第一项声明中: if ( ($A==$B) && ($C==$D) ) if ($A==$B) if ($C==$D) 首先,它将检查A是否等于

下面哪个if语句在PHP中更有效:

$A=@"llaweikj";
$B=@"aesrwh";
$C=@"uymy";
$D=@"xcvb";

if ( ($A==$B) && ($C==$D) ) {
    //Do something with it
}


什么更有效率?

在你的问题中,两种说法是不同的

在第一项声明中:

if ( ($A==$B) && ($C==$D) )
if ($A==$B) 
if ($C==$D)
首先,它将检查A是否等于B,C是否等于D,然后代码将在if语句中执行。意味着两个条件都必须为真

但在你的第二句话中:

if ( ($A==$B) && ($C==$D) )
if ($A==$B) 
if ($C==$D)
如果A等于B,则执行true条件中的代码,然后执行第一个if条件,如果C等于D,则执行第二条语句。如果两者都为true,则将执行两个if条件

编辑:

更新您的问题后,答案如下:

如果($A==B)和($C==D))效率更高,那么您的第一个条件
。
在第二个语句中,不需要if,即使您可以在单个if条件中检查这两个条件。因此,第一个条件将快速执行。

这两个示例(现在)在逻辑上是等价的,并且由于Php,在第一个示例中,第二个条件
C==D
只有在第一个
A==B
为真时才会计算,这与显式嵌套的第二个示例等效

现在选择哪一个更有效取决于您可能希望对这两个条件执行的操作。在全有或全无的情况下,第一次检查没有问题:

if ( ($A==$B) && ($C==$D) ) {
    // Both are true
}
else {
    // Here we only know that at least one condition failed 
    // we would need to recheck if additional logic was required
}
而嵌套的
if
s允许更有效地检测两种情况的所有不同排列,在需要更细粒度逻辑的情况下:

if ($A==$B) {
    if ($C==$D) {
     // $A == $B and $C == $D
   }
   else {
     // $A == $B but $C != $D
   }
}
else {
    // $A != $B 
    // ... we may again need to check $C vs $D
}

我认为最有效的方法是:
A=bc=D
顺便问一下,
$
符号在哪里?啊,我忘了:D它们是不同的,只是你写它的方式不同,你不需要任何if语句,因为它会因为
=
操作符而被执行。第一个和第二个实际上是不同的情况。所以比较是必要的incorrect@Daan你是对的。我忘了做那件事;)@卡米洛,我正赶着写呢。我相应地修改了问题。如果两者都是真的,那么只执行If语句中的If语句。如果第一个If语句的其余部分是空的。@bluehead我同意你的看法。我认为这个场景也需要在这里添加。