|
Posted by tg-php on 08/11/05 23:19
Using === should work. This is most likely because, if I remember correctly, when you compare a string to a integer, it essentially does an intval(string). If the string contains no numbers, you end up with nothing.. or zero.
It definitely isn't a bug and definitely has to do with type conversion though. the triple equalsign deal should work since it forces PHP not to convert types.
-TG
= = = Original 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...
___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.
Navigation:
[Reply to this message]
|