是否必须在此语句中将整个三元运算符语句括在括号中?

时间:2015-05-22 07:44:00

标签: php ternary-operator parentheses readability code-readability

例如,在以下声明中,

$class = (  is_array($tagClasses) ? 'class="'.implode(" ",$tagClasses).'"' : ''  );

是最外面的括号,只是为了便于阅读,还是真的有其他目的?

我认为这只是为了可读性和代码美学,除非你在同一个语句中发生了其他事情,你必须将语句的这一部分分开并指定首先执行的内容。

但是,如果没有括号,我从未见过这样的陈述,并且已经考虑了很长一段时间。因此这个问题。

1 个答案:

答案 0 :(得分:2)

原始意图是可读性我想或者开发人员可能只是遵循编码标准。虽然包装和缩进比添加不必要的括号更有助于提高可读性。像这样的例子:

$class = is_array($tagClasses)
    ? 'class="' . implode(" ", $tagClasses) . '"'
    : '';

如果你肯定想在三元运算符周围添加(),那么当你将它们相互嵌套时(这不是很好),或者为了便于阅读,你可以将运算符的操作数放在()之间,如果你那里有复杂的表达。