什么时候最好在PHP中使用switch语句?

时间:2010-08-10 19:13:32

标签: php

在什么情况下我应该使用switch语句而不是PHP中的if语句?

4 个答案:

答案 0 :(得分:2)

如果您有一系列可以逻辑隔离的相关条件,或者您有一系列必须根据单个变量或表达式的状态或结果执行的条件,则应使用开关。

与其他答案相反,开关中的表达式不需要被隔离到单个变量(尽管它更简单,更易于阅读,并且通常是一个好主意),但是case语句需要从单个变量生成单独的结果评估表达式。

一个好的经验法则是当你有一个易于准备的表达式时使用开关,这个表达式将生成多个结果,然后你必须根据这些结果执行逻辑。如果你的表达式是无关的,那么只会产生布尔条件,或者变得复杂/相关(如果是b,那么如果是c然后是b,如果是d,那么有时是b),然后坚持使用ifs。

答案 1 :(得分:1)

当某个变量可能是许多不同“案例”之一时,您使用开关在IF语句中,如果需要,可以用多个ELSE IF和非常长的条件替换此方法。

由于没有最佳时间使用开关,因此确实没有一种简单的方法可以解决这个问题。只有在您显示代码时,才会有人说“通过切换可以更好地工作”。最后,你可能只会节省几毫秒。

答案 2 :(得分:1)

如果switch序列只测试一个变量用于不同的值,那么您应该使用if语句。 switch语句实际上只是用来让你的代码看起来更清晰,更清晰,所以如果你觉得它是这样的,那就用它吧 - 你的直觉可能是正确的。

答案 3 :(得分:1)

从不。

  • 您将忘记案件结尾处的休息陈述,这可能会导致意外结果。
  • 你只能评估一个条件,否则 - 如果是更多样化的话。
  • 很难看。

也就是说,有时你特别需要直通功能,或者你在每个case语句中从函数返回,这样你就不会忘记中断。也许这需要例外。