在PHP中,当使用三元运算符(?:)时,一次评估多个条件的好处/损害是什么


In PHP when using ternary operator (?:) what are benefits/damage of evaluating multiple conditions at a time?

很难找到词语来表达这一点,但每个使用三元的例子都总是使用单一条件

$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语句。


然而,这是我个人的写作风格。采用自己的一个并坚持下去。