Switch Case 和 if else if 哪个更快更好?

2023-12-03

哪种方法更好、最快:if 或switch?

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

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

你的第一个例子是完全错误的。你需要elseif而不仅仅是else.

如果你使用if..elseif... or switch主要是一个偏好问题。性能是一样的。

但是,如果您的所有条件都属于以下类型x == value with x在任何条件下都相同,switch通常是有道理的。我也只会使用switch如果有多个例如两个条件。

一个案例,其中switch实际上给你带来性能优势的是如果变量部分是函数调用:

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

Then some_func()仅在 with 时调用一次

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

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

一个案例,你cannot当你有更复杂的条件时,才使用 switch -switch只适用于x == y with y是一个常数值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Switch Case 和 if else if 哪个更快更好? 的相关文章