【问题标题】:How to optimize numerous 'else if'?如何优化众多“else if”?
【发布时间】:2017-06-27 09:51:50
【问题描述】:

有来自用户的数据,我需要检查特定范围内的成员资格,并根据此输出得出不同的结果。我用这个方法:

if($var < 1000) {
    do one
}
else if ($var < 2000) {
    do two
}
else if ($var < 3000) {
    do three
}
....

但它看起来不专业。如何优化此代码? /没有'switch' - 几乎一样/

【问题讨论】:

  • 但看起来不专业 - 你为什么这么认为?
  • 您可以使用三元运算符。但是,根据您有多少语句,它可能会变得不可读。这是blog post
  • 如果你在里面吃什么?
  • 在里面用餐如果有障碍?那里的食物好吃吗?
  • @Bathsheba 哇。 (更多解释here

标签: php if-statement


【解决方案1】:

我觉得不错:

  1. 可读。

  2. 这不太可能是性能瓶颈。

不要想太多。您可能可以将整个内容整理成一个以范围为键的功能表,但是为什么要混淆清晰和简单的内容呢?

不要使用三元条件运算符链,因为出于某种原因,PHP 人员决定摆弄该运算符的 关联性,参见。 C、C++ 和 Java。

【讨论】:

    【解决方案2】:

    我猜这取决于每个 if - else 块中的逻辑。例如,如果它只是返回或调用方法,您可以执行以下操作:

    if ($var < 1000) return 1;
    if ($var < 2000) return 2;
    if ($var < 3000) return 3;
    

    如果每个条件中的逻辑不止一个操作,你可以把它移到一个函数中,然后简单地调用相关函数。

    说实话,你所拥有的一切都很好。只要它是干净和可读的。只有当它们变得更加嵌套时,您才应该开始担心清洁度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-19
      • 2019-12-08
      • 2020-11-23
      • 2023-03-28
      • 2010-12-29
      • 1970-01-01
      • 2017-06-27
      • 1970-01-01
      相关资源
      最近更新 更多