switch语句只有一个case

时间:2015-06-29 09:50:28

标签: php if-statement switch-statement

我在switch语句中只有一个案例

switch ($coreName) {
    case 'stock':
        $result['website'] = ($result['website']) ? $websiteStatus[$result['website']] : "";
    break;
}

我的问题是这是一个好习惯,还是我会用if语句?任何性能差异或其他什么?

4 个答案:

答案 0 :(得分:1)

从技术角度来看,没有任何事情可以反对这一点。

所以要回答的问题是:为什么你实现了switch语句而不是if条件?

我说默认应该是"正常" if条件,除非有特殊原因指向switch。两个主要原因可能是:

  • 可扩展性(以后添加)
  • 可读性(适用于其他程序员)

特别是第一种情况应该在这里考虑。如果可能需要扩展处理,那么立即使用switch是一种很好的做法。

答案 1 :(得分:1)

如果您转到phpBench.com并向下滚动查看ifcase之间的结果,您会发现使用if语句的速度稍快一点,但是结果并没有太大的不同。 (以下截图)

enter image description here

您也可以使用if,因为它更容易阅读,更少的代码,并且仍然更快(即使只是很小的数量)。

if($corename === "stock") {
  $result['website'] = ($result['website']) ? $websiteStatus[$result['website']] : "";
}
只有在比较多个值而不是一个值时才应使用

case。这与使用elseif相同。使用if最适合此类。

答案 2 :(得分:0)

为什么不简单地做一个简单的if,像这样:

if($coreName == 'stock')
    {
        $result['website'] = ($result['website']) ? $websiteStatus[$result['website']] : "";
    }

希望这有帮助。

答案 3 :(得分:0)

使用if else仅限于:

1. you have only 2 or more conditions OR You have multiple conditions in single if else.

时使用开关
1. You have to compare `ONE` variable value against multiple.

在你的情况下,如果其他更好