一尘不染

切换外壳还是更快,更好?

php

哪个是更好,最快的方法:if或switch?

if(x==1){
  echo "hi";
} else if (x==2){
  echo "bye";
}

switch(x){
  case 1
    ...
  break;
  default;
}

阅读 259

收藏
2020-05-29

共1个答案

一尘不染

您的第一个示例就是错误的。您需要elseif的不仅仅是else

如果使用if..elseif...switch主要是偏好设置。表现是一样的。

然而,如果所有条件的类型x == valuex是相同的在每一个条件,switch通常是有道理的。我也只会switch在有两个以上条件的情况下使用。

其中A的情况下switch,其实是给予你一个性能上的优势是,如果可变部分是一个函数调用:

switch(some_func()) {
    case 1: ... break;
    case 2: ... break;
}

然后some_func()仅在

if(some_func() == 1) {}
elseif(some_func() == 2) {}

它会被调用两次-包括函数调用可能发生的两次副作用。但是,你总是可以使用$res = some_func();,然后用$res你的if条件-
这样就可以避免这个问题产品总数。

在那里你的情况 不能 在所有使用开关是当你有更复杂的条件- switch仅适用于x == yy是一个恒定值。

2020-05-29