哪种方法更好、最快: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(使用前将#替换为@)