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