您为三元运算符使用哪种编码样式?[已关闭]

如果它很短,我会把它放在一行中。最近,我一直在将这种样式用于更长或嵌套的三元运算符表达式。一个人为的例子:

$value = ( $a == $b ) 
            ? 'true value # 1'
            : ( $a == $c )
                ? 'true value # 2'
                : 'false value';

就个人而言,您使用哪种风格,或者认为哪种风格最具可读性?

编辑:(关于何时使用三元运算符)

我通常避免使用超过2级深度的三元运算符。我更喜欢2级深度三元运算符而不是2级if-else,当我在PHP模板脚本中回显变量时。


答案 1

通常要避免使用三元运算符,但这种形式可以非常可读:

  result = (foo == bar)  ? result1 :
           (foo == baz)  ? result2 :
           (foo == qux)  ? result3 :
           (foo == quux) ? result4 : 
                           fail_result;

这样,条件和结果就保持在同一条线上,并且很容易浏览并了解发生了什么。


答案 2

我尽量不使用三元运算符来编写嵌套条件。它违背了可读性,并且与使用条件相比,没有提供额外的值。

只有当它能放在一行上,并且它的含义非常清楚时,我才会使用它:

$value = ($a < 0) ? 'minus' : 'plus';

推荐