|
Posted by Philip Hallstrom on 08/11/05 21:56
>> 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...
[Back to original message]
|