使用PHP三元运算符增加值

use*_*791 0 php

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

我试过$x = $x==2 ? 0 : ++;但很明显它不起作用.

if($x == 2 ){ 
    $x=0; 
}else{ 
    $x++; 
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ama*_*ali 10

你想在这里使用预增量.

$x = ($x==2) ? 0 : ++$x;  
Run Code Online (Sandbox Code Playgroud)

演示!


Eli*_*gem 7

最好的方法是:

$x = $x === 2 ? 0 : $x+1;
Run Code Online (Sandbox Code Playgroud)

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

$x += $x === 2 ? $x*(-1) : 1;//or hard-code -2 instead of $x*(-1)
Run Code Online (Sandbox Code Playgroud)

这要么加1,$x要么加到$x*-1$ x($x + (-$x)是0).但总的来说,我想补充一点,尽可能避免使用三元组(特别是在PHP中).在这种情况下,写作:

if (++$x === 3)
{
    $x = 0;
}
Run Code Online (Sandbox Code Playgroud)

不完全一样的东西,而不是太多的代码,虽然它看起来要好很多.即便如此,if语句中的增量仍然是凌乱的,事先是最佳增量,或者:

$x = $x === 2 ? -1 : $x;
$x++;
Run Code Online (Sandbox Code Playgroud)

如果你已经有了ternaries一个奇怪的偏好...如果它成为一个班轮:

$x = ($x ===2 ? -1 : $x) +1;
Run Code Online (Sandbox Code Playgroud)

也工作......但是有一个针对这类事情的代码高尔夫网站 ......