【发布时间】:2015-07-20 16:06:01
【问题描述】:
据我所知,在 PHP 中编写三元运算有两种方法:
$var = ( isset( $i['var'] ) ? $i['var'] : "" );
$var = ( isset( $i['var'] ) ) ? $i['var'] : "";
这些方法中的一种是“正确的”,还是一种比另一种表现更好,或者它们都可以互换?
【问题讨论】:
-
没有“两种方式”,有无限种方式,如果您打算考虑添加括号是一种新的书写方式一个运营商。您可以添加任意数量的括号,它不会改变任何东西。他们是一样的。您错过了带有 no 括号的明显的一个,并且唯一一个可以说是“正确”的:
$var = isset($x) ? $y : $z -
这就像你问什么是正确的一样:
$i = 1;或$i = ((((((((((1))))))))));在只有一种情况下你真的想要第一个,那就是如果你嵌套三元,你不想这样做。 -
这两种形式的括号都太多:括号通常用于分组逻辑运算符,如 AND 和 OR。这里都没有使用,所以唯一使用的圆括号应该是
isset()。 -
好了,我们开始吧,你每天都会学到新东西。感谢你们的反对,伙计们!
标签: php ternary-operator