我知道这可能是一个简单的问题,但我想知道每个人对此的看法。
PHP中的switch和IF函数有什么区别??我能看到的是,"switch“函数在哪里使用" if”函数,如果我错了,它也会应用there..correct me。
或者两者之间的性能差异??
发布于 2010-07-05 18:43:46
或两者之间的任何性能差异??
忘掉这个层面上的性能差异--可能有一个微观的差异,但只有在进行数十万次操作时才会感觉到它。switch是一种更好的代码可读性和可维护性的构造:
switch ($value)
{
case 1: .... break;
case 2: .... break;
case 3: .... break;
case 4: .... break;
case 5: .... break;
default: .... break;
}在大多数情况下,比起
if ($value == 1) { .... }
elseif ($value == 2) { .... }
elseif ($value == 3) { .... }
elseif ($value == 4) { .... }
elseif ($value == 5) { .... }
else { .... }编辑:受库晨的评论启发,为了完整起见,请使用一些benchmarks (结果会有所不同,这是一个实时的)。请记住,这些测试会运行1000次的。对于几个if的区别是完全可以忽略的。
结论(来自phpbench.com):
使用开关/case或if/case if几乎是相同的。请注意,该测试取消了=== (恰好等于),并且比使用== (等于)略快。
发布于 2010-07-05 18:47:11
如果您有简单的条件,例如,如果某些东西等同于其他东西,那么切换是理想的。
例如,而不是执行以下操作:
if($bla == 1) {
} elseif($bla == 2) {
} elseif($bla == 3) {
} etc...最好是这样做:
switch($bla) {
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
default:
...
break;
}或者,如果你有复杂的条件,你应该使用if/else。
我认为这只是一个观点问题--有些人根本不使用switch语句,而是坚持使用if/else。
发布于 2010-07-05 19:16:35
不,你是对的。
这些陈述之间没有太大的区别。
你可以用你喜欢的。
请记住,如果您必须使用3-4个以上的连续条件-这意味着您最有可能存在设计缺陷。
通常,您可以用循环或更清晰的应用程序设计来替换这样的语句。
https://stackoverflow.com/questions/3178801
复制相似问题