可能重复:
php multiple if conditions
What is better ? Multiple if statements, or one if with multiple conditions
所以我正在研究一段代码,其中我最终使用了两种不同风格的if语句。这让我感到疑惑 - 哪一个更有效在PHP ?尽管存在一般差异(如果存在),是否有时候一个人可能比另一个人好?是否有一定程度的复杂性,其中的好处变得清晰(如果接近)或接近(如果最初清楚)?另外,除了美学或主观差异之外,一种方法还有其他好处吗?
if ($value == 'someval') {
if($otherval == 'someval') {
// do stuff
} else if ($otherval == 'otherval') {
// do same stuff
}
}
VS
if (($value == 'someval') && ($otherval == 'someval' || $thirdval == 'someval') {
// do stuff
}
注意 - 我不关心什么适用于C#或Java或其他任何语言,除非有人能证明他们处理的结构完全相同。
答案 0 :(得分:3)
只要你在每个块中执行相同的代码(正如你在评论中指出的那样),那么他们都会做到这一点(不,不会有很多性能差异)。
但是,通常情况并非如此,您不会双向执行相同的代码,因此逻辑上第一个块实际上与第二个块不同。这是一个例子:
if($value == 'someval') {
if($otherval == 'someval') {
doSomething();
}
else if ($otherval == 'otherval') {
doSomethingElse();
}
}
与
if(($value == 'someval') && ($otherval == 'someval' || $otherval == 'otherval')) {
//we now still need to evaluate $otherval in order to determine which func to execute...
//this adds bloat...
if($otherval == 'someval') {
doSomething();
}
else if ($otherval == 'otherval') {
doSomethingElse();
}
}
因此,正如您在上面的案例中所看到的,第二个块实际上 效率高于第一个块。
答案 1 :(得分:2)
没有真正的区别,你应该使用哪个更具可读性。
答案 2 :(得分:0)