Thanx both of you,
I know the type-casting bit and have noticed the third parameter which
'fixes' the in_array issue. I just missed 'test' == 0 implied (int) 'test'
== 0. Typecasting a string to integer indeed returned 0. Typecasting is
of course not necessary within if statements, resulting in my confusion.
Thanks again,
Ivo
On Tue, 09 Nov 2004 12:42:51 +0200, Bogdan Stancescu wrote:
> Apart from Marek's reply, you should probably check the in_array()
> documentation (look at the third, optional parameter) and search for type
> casting on php.net.
>
> Cheers,
> Bogdan
>
> Ing. Ivo F.A.C. Fokkema wrote:
>
>> Hi guys and gals,
>>
>> I'm not screaming "Bug! Bug!" but this _does_ look 'illogical' to me.
>> I've searched the archives, but found no earlier conversation. Sorry if
>> I missed it. Consider the following code:
>>
>> var_dump(in_array('test', array(0)));
>>
>> What does this return? I expect bool(false), but it returns bool(true).
>> After some searching the web, I bumped into this:
>> http://www.phpdiscuss.com/article.php?id=67763&group=php.bugs
>>
>> Basically, it is said by derick [at] php.net that this behavior is
>> expected. The following code :
>>
>> var_dump('test' == 0);
>>
>> also returns bool(true). But my logic tells me, that if 'test' == 0,
>> then :
>>
>> if (0) {
>> ...
>> }
>> }
>> should do the same as
>>
>> if ('test') {
>> ...
>> }
>> }
>> but it doesn't! The first if-statement is _not_ executed, the latter is.
>> In my opinion, this is not correct. Any thoughts on this? Am I not
>> seeing the logic here?
>>
>> Thanks for your thoughts.
>>
>> Ivo Fokkema
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php