使用PHP三元运算符增加值

时间:2013-09-05 12:56:25

标签: php

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

我已经尝试了$x = $x==2 ? 0 : ++;,但显然它没有用。

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

感谢。

3 个答案:

答案 0 :(得分:10)

你想在这里使用预增量。

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

<强> Demo!

答案 1 :(得分:7)

最好的方法是:

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

如果你坚持使用三元组来增加var:

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

这可以为$x添加1或将$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;

也有效......但是这些东西有code-golfing site ......

答案 2 :(得分:-2)

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

$x = ++$x % 2;