“纵向”三元运算符是不良做法吗?

时间:2017-07-22 22:37:06

标签: php ternary

这是在PHP中,但它应该(我认为)适用于任何使用三元运算符的语言。

我有一个简单的行,三元运算符将一个字符串赋值给一个值。尽管如此,字符串最终还是有点太长了,所以最终结果看起来像这样:

$resultingString = ($isValid) ?
    "This statement is true."
    :
    "This statement is false."
;

代码运行完美,但它只是看起来......很奇怪......这是不好的做法?我能想到的唯一选择是:

if ($isValid) {
    $resultingString = "This statement is true.";
} else {
    $resultingString = "This statement is false.";
}

稍微干一点。

2 个答案:

答案 0 :(得分:3)

这是一个基于意见的主题,但我倾向于认为在代码库中保持一致非常重要。 一种可能的风格类似于你原来的(对我来说,读取更干净):

$resultingString = ($isValid)
    ? "This statement is true."
    : "This statement is false.";

我尽可能避免这些,并避免'其他'作为一般做法,所以我可能会这样做:

$resultingString = "This statement is false.";
if ($isValid) {
    $resultingString = "This statement is true.";
}

答案 1 :(得分:1)

我更喜欢:

$resultingString = (
    $is_valid
        ?
    "This statement is true."
        :
    "This statement is false."
);