Boolean value switch/invert
What about using the Absolute Value function abs()
, $val can be "1" or "0" and you want to invert it:
$val = abs($val-=1);
The logic:
Always subtracting "1" from the number and eliminating the "sign".
1 - 1 = 0
abs(0) = 0
0 - 1 = -1
abs(-1) = 1
If you want the shortest possible code, XOR the boolean with 1:
$boolean ^= 1;
Strictly this returns an int not a boolean. It doesn't work the same way as $boolean = !$boolean
(and is slightly less efficient) but for most purposes it should do the job.
Yes:
$boolean = !$boolean;
if it's not a boolean value, you can use the ternary construction:
$int = ($some_condition ? 1 : 2); // if $some_condition is true, set 1
// otherwise set 2
Just use !
to invert the result so it can be like:
$boolean = !(bool)$result;