切换vs if语句

Cyb*_*kie 19 php conditional if-statement switch-statement

我处于两难境地.哪个最好用,为什么..切换或如果?

switch ($x) 
{
case 1:
  //mysql query 
  //echo something
  break;
case 2:
  //mysql query 
  //echo something
  break;
}
Run Code Online (Sandbox Code Playgroud)

...

if ($x == 1) {
    //mysql query 
    //echo something    
} 

if ($x == 2) {   
    //mysql query 
    //echo something
}  
Run Code Online (Sandbox Code Playgroud)

ale*_*lex 30

它们有不同的含义.

第一个示例将在满足条件时停止.

第二个将测试$x两次.

你可能想要成为第二ifelse if.这意味着只要一个条件的计算结果为true,就会跳过该块.

但如果你想知道哪一个最快,你应该考虑哪一个最有效地传达我想要做的事情.它们最有可能最终成为目标架构中的条件跳转.

过早优化......(你知道其余的:P)


小智 7

当有两个以上的选择时,切换更好.它主要用于代码可读性和可维护性,而不是性能.

正如其他人指出的那样,你的例子并不等同.


iph*_*iac 6

switch语句会更快,因为它只检查一次值.


Joh*_*ock 5

首先你所拥有的是不一样的

switch(value)
  case condition1:
    break;
  case condition2:
    break

if (condition1) {
}
if (condition2) {
}
Run Code Online (Sandbox Code Playgroud)

这些都是同义词

switch(value)
  case condition1:
    break;
  case condition2:
    break

if (condition1) {
}
else if (condition2) {
}
Run Code Online (Sandbox Code Playgroud)

第二,如果你在谈论我的第二个例子,其中两个是同义词.然后使用switch语句可以减轻编写大量if ..else if语句的痛苦....

在我的观点中,开关也可以提供更多的可读性.但即便如此,有时候使用if...else更简单,特别是对于复杂的逻辑.