The repetition of a prefix operator (!
, or ~
) is usually a typo. The second operator invalidates the first one:
$a = false;
$b = ~~$a; // Noncompliant: equivalent to "$a"
While calling !
twice is equivalent to calling the boolval()
function, the latter increases the code readability, so it
should be preferred.
$a = 0;
$b = !!$a; // Noncompliant: equivalent to "boolval($a)"