是否必须将整个三元运算符语句括在该语句的括号中?
Is it mandatory to enclose an entire ternary operator statement in parenthesis in this statement?
例如在下面的语句中,
$class = ( is_array($tagClasses) ? 'class="'.implode(" ",$tagClasses).'"' : '' );
最外面的括号只是为了便于阅读还是真的有其他用途?
我认为这只是为了可读性和代码美观,除非你在同一条语句中发生了其他事情,你必须将这部分语句分开并指定先执行什么。
但是我从来没有见过没有括号的语句,并且已经考虑了很长时间。所以这个问题。
我猜最初的意图是提高可读性,或者开发人员可能只是遵循编码标准。虽然换行和缩进比添加不必要的括号更有助于提高可读性。例如:
$class = is_array($tagClasses)
? 'class="' . implode(" ", $tagClasses) . '"'
: '';
当你确实想在一个三元运算符周围添加 () 时,当你将一个运算符嵌套到另一个运算符时(这无论如何都不好),或者为了可读性,你可以将运算符的操作数放在 () 之间如果你有复杂的表达方式。
例如在下面的语句中,
$class = ( is_array($tagClasses) ? 'class="'.implode(" ",$tagClasses).'"' : '' );
最外面的括号只是为了便于阅读还是真的有其他用途?
我认为这只是为了可读性和代码美观,除非你在同一条语句中发生了其他事情,你必须将这部分语句分开并指定先执行什么。
但是我从来没有见过没有括号的语句,并且已经考虑了很长时间。所以这个问题。
我猜最初的意图是提高可读性,或者开发人员可能只是遵循编码标准。虽然换行和缩进比添加不必要的括号更有助于提高可读性。例如:
$class = is_array($tagClasses)
? 'class="' . implode(" ", $tagClasses) . '"'
: '';
当你确实想在一个三元运算符周围添加 () 时,当你将一个运算符嵌套到另一个运算符时(这无论如何都不好),或者为了可读性,你可以将运算符的操作数放在 () 之间如果你有复杂的表达方式。