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;

Tags:

Php

Boolean