很难找到词语来表达这一点,但每个使用三元的例子都总是使用单一条件
$x = ($x > 1) ? 1 : 0;
$x = (any single evaluation) ? if true : if false;
以上是我发现的所有例子的结构。
不过,我的问题是关于下面的结构,特别是在这里使用&;
$x = (($x > 1) && ($z === 0)) ? 1 : 0;
因此,我的问题是,使用我上面最后一个例子的格式是否会引起不满或问题,因为我从未见过它被使用过,也从未解释过它的好处/损害。
唯一可能的问题是,条件越复杂,就越难阅读。有一点是,读取if( ... ) {$x = 1;} else {$x = 0;}
比三元运算符更容易。
这是关于可读性和风格的。
我通常只对非常简单的设置使用三元运算符。
即:
$x = isset($y) ? $y : "default";
任何比这更复杂的事情,都应该转到if语句。
然而,这是我个人的写作风格。采用自己的一个并坚持下去。