boolean vs int comparison
am 15.07.2009 20:07:55 von Martin Scotta--0016e645fae83513a3046ec26f58
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
I always have doubts about comparison between boolean and integers.
Lets PHP shows hows is that he does.
The results where:
false < $int === true / $int !== 0
false <= $int === true
false > $int === false
false >= $int === false / $int !== 0
false == $int === false / $int !== 0
false === $int === false
false != $int === true / $int !== 0
false !== $int === true
true < $int === false
true <= $int === true / $int !== 0
true > $int === false / $int !== 0
true >= $int === true
true == $int === true / $int !== 0
true === $int === false
true != $int === false / $int !== 0
true !== $int === true
function bol2string($boolean)
{
return $boolean ? 'true' : 'false';
}
$results = array();
foreach(array(false, true) as $boolean)
foreach(array('< ', '<= ', '> ', '>= ', '== ', '===', '!= ', '!==') as
$test)
for($i=-1; $i<1; ++$i)
{
@eval(
'$value =' . (
$_test = bol2string($boolean) . ' ' . $test . ' ' . $i
) . ';'
);
$results[ $boolean][ $test ][ $i ] = $value;
}
foreach($results as $boolean => $_boolean)
foreach($_boolean as $test => $_test)
echo bol2string($boolean) , $boolean ? ' ': ' ' ,
$test ,' $int === ' , bol2string($_test[-1]),
$_test[0] !== $_test[-1] ? ' / $int !== 0' : '' ,
PHP_EOL;
?>
--
Martin Scotta
--0016e645fae83513a3046ec26f58--