Re: Re: possible bug (string equality to zero)?

From: Date: Thu, 11 Aug 2005 18:56:33 +0000
Subject: Re: Re: possible bug (string equality to zero)?
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-220463@lists.php.net to get a copy of this message
No, Christopher, that is not a bug. As long as the var is empty, and if you try to compare with 0, or false, it will report true in the comparison because the variable does not contain anything, which will mean false for a boolean and 0 for a variable. If you are attempting to discover if a string contains data, use empty() instead. You can also check if the string is null or actual zero (0).
But the var isn't empty. $a[] = 'blah'; $a[] = 'blah'; $a['assoc'] = 'array'; foreach ($a as $k => $v) if ($k == 'assoc') # do something The 'if' statement is incorrectly executing when $k is 0. I find it strange that 0 == any string. The way I see it, 0 is false. false == 'a string' should not be true.
You might try "===" instead of "==" to get type checking as well...

« previous php.general (#220463) next »