使用PHP三元运算符增加一个值


Increment a value with PHP ternary operator

如何使用三元运算符递增$x

我试过$x = $x==2 ? 0 : ++;,但显然没用。

if($x == 2 ){ 
    $x=0; 
}else{ 
    $x++; 
}

谢谢。

您需要在此处使用预增量。

$x = ($x==2) ? 0 : ++$x;  

演示

最好的方法是:

$x = $x === 2 ? 0 : $x+1;

如果你坚持使用三进制来增加var:

$x += $x === 2 ? $x*(-1) : 1;//or hard-code -2 instead of $x*(-1)

这要么将1添加到$x,要么将$x*-1添加到$x($x + (-$x)为0)。不过,总的来说,我想补充一点,应该尽可能避免使用三进制(尤其是在PHP中)。在这种情况下,写入:

if (++$x === 3)
{
    $x = 0;
}

做了完全相同的事情,不是更多的代码,尽管它看起来更好。即便如此,if语句中的增量仍然是混乱的,最好是预先增量,或者:

$x = $x === 2 ? -1 : $x;
$x++;

如果你对燕鸥有一种奇怪的偏好。。。如果具有为一行:

$x = ($x ===2 ? -1 : $x) +1;

也有效。。。但有一个代码高尔夫网站为这类事情。。。

为什么不使用模块运算符呢?

$x = ++$x % 2;