【问题标题】:PHP ternary conditional. Yes or no and why?PHP 三元条件。是或否,为什么?
【发布时间】:2012-06-10 03:27:24
【问题描述】:

有人告诉我,除非必要,否则不要使用三元条件运算符 (?:)。

我的问题是,为什么?

我喜欢在编写 if/else 时使用三元运算符,每个语句只有一个语句。我认为它看起来更容易,而且更容易编写。

同样,只有当它真的很短时(1 行 if/else)。我可以理解为什么嵌套和多重三元是邪恶的。

那么这种做事方式有什么问题呢?这完全是偏好问题还是有性能成本?

另外,每当我有超过 2 或 3 个 else 或 elseif 的条件时,我通常会使用 switch 语句。这是好习惯吗?

【问题讨论】:

  • 为人类可读性选择您的语法,而不是为了简洁或性能。让编译器/解释器在这个级别处理性能,并在分析后优化自己。所以:使用能让你的代码更容易理解的语法。

标签: php syntax ternary-operator


【解决方案1】:

我认为三级运营商没有问题(也从未听说过问题)。事实上,它使代码更简洁,除非读者是初学者,否则在我看来更清晰。

同样,switch 实际上只是一种抽象,更多的是关于清晰度。当我只依赖一个变量时,我使用 switch。如果您需要在每个案例中进行额外检查,那就不好了,但您似乎已经很清楚这些事情了。

【讨论】:

    【解决方案2】:

    我也看不出有什么问题。至于性能,这些类型的东西通常只是“语法糖”。基本上它在引擎盖下转换为相同的代码,所以它只是为了您的方便。当然,如果它最终使您的代码读/写变得不那么方便,那么就没有合理的理由使用它。

    【讨论】:

      【解决方案3】:

      奇怪的是,我的前辈告诉我,只要您只是测试一个真假条件,就可以使用三元运算符,而且速度也更快。我同意。

      但在多个条件的情况下,我总是更喜欢 if else 循环它很容易。

      而且我从未使用过 switch 语句,因为 if else 可以为我完成这项工作。

         so ternary opertor are best for one line of if else and its easy and fast
      

      如果 else 不推荐它们的唯一原因是因为它对新用户来说变得复杂且容易出错

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-14
        • 2015-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-19
        • 2021-03-17
        • 1970-01-01
        相关资源
        最近更新 更多