布尔值开关/反转

jol*_*olt 59 php boolean

booleanPHP中是否有切换/反转值的功能?

喜欢......快捷方式:

if($boolean === true){
    $boolean = false;
}else{
    $boolean = true;
}
Run Code Online (Sandbox Code Playgroud)

Pek*_*ica 124

是:

$boolean = !$boolean;
Run Code Online (Sandbox Code Playgroud)

如果它不是布尔值,则可以使用三元构造:

$int = ($some_condition ? 1 : 2); // if $some_condition is true, set 1
                                  // otherwise set 2
Run Code Online (Sandbox Code Playgroud)

  • @Tom肯定.试试看 (2认同)

小智 5

使用绝对值函数怎么样abs(),$ val可以是"1"或"0",你想要反转它:

$val = abs($val-=1);
Run Code Online (Sandbox Code Playgroud)

逻辑:

始终从数字中减去"1"并消除"符号".

1 - 1 = 0
abs(0) = 0

0 - 1 = -1
abs(-1) = 1
Run Code Online (Sandbox Code Playgroud)


Gan*_*net 5

如果您想要最短的代码,则将布尔值与1进行XOR运算:

$boolean ^= 1;
Run Code Online (Sandbox Code Playgroud)

严格地,这返回一个int而不是一个布尔值。它的工作方式$boolean = !$boolean与效率不同(效率略低),但在大多数情况下,它应该可以完成工作。


Abh*_*waj 5

只需用来!反转结果,这样它就可以像: $boolean = !(bool)$result;