哪个是更好,最快的方法:if或switch?
if(x==1){ echo "hi"; } else if (x==2){ echo "bye"; } switch(x){ case 1 ... break; default; }
您的第一个示例就是错误的。您需要elseif的不仅仅是else。
elseif
else
如果使用if..elseif...或switch主要是偏好设置。表现是一样的。
if..elseif...
switch
然而,如果所有条件的类型x == value与x是相同的在每一个条件,switch通常是有道理的。我也只会switch在有两个以上条件的情况下使用。
x == value
x
其中A的情况下switch,其实是给予你一个性能上的优势是,如果可变部分是一个函数调用:
switch(some_func()) { case 1: ... break; case 2: ... break; }
然后some_func()仅在
some_func()
if(some_func() == 1) {} elseif(some_func() == 2) {}
它会被调用两次-包括函数调用可能发生的两次副作用。但是,你总是可以使用$res = some_func();,然后用$res你的if条件- 这样就可以避免这个问题产品总数。
$res = some_func();
$res
if
在那里你的情况 不能 在所有使用开关是当你有更复杂的条件- switch仅适用于x == y有y是一个恒定值。
x == y
y