Php 哪个if语句更有效?
下面哪个if语句在PHP中更有效: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是否等于
$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我同意你的看法。我认为这个场景也需要在这里添加。