只有一种情况的 switch 语句

switch statement having only one case

我在switch语句中只有一个case

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

我的问题是这是一个好的做法还是我应该为此使用 if 语句?任何性能差异或任何东西?

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

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

希望对您有所帮助。

使用 if else 仅当 :

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

并在

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

在你的情况下 if else 更好

从技术角度来看,这无可厚非。

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

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

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

这里尤其要考虑第一种情况。如果可能需要扩展处理,那么立即使用 switch 肯定是一个好习惯。

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

您也可以使用 if,因为它更易于阅读,代码更少,而且速度仍然更快(即使只是一点点)。

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

case 只应在比较多个值而不是一个值时使用。这与使用 elseif 相同。使用 if 最适合这种情况。