ID:               20708
 Comment by:       milos at mcservices dot com
 Reported By:      wb at sapo dot pt
 Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: linux 2.2.20, linux 2.4.19
 PHP Version:      4.2.3
 New Comment:

This should be BOLDED in RED in documentation!


Previous Comments:
------------------------------------------------------------------------

[2002-11-28 18:34:32] wb at sapo dot pt

thank you for very fast information.



type juggling is a great feature but really hard to learn. now i
learned that it casts my string to numeric for the comparison with an
integer - my coding would have needed the integer casted to a string. 



sorry for bothering you. i will go and look for more information about
precedence of type casting in comparisons if it is that way it works.

------------------------------------------------------------------------

[2002-11-28 18:13:07] [EMAIL PROTECTED]

The numerical value of 'foo' is 0.  If you want to compare both value
*and* type, use ===

------------------------------------------------------------------------

[2002-11-28 18:11:16] wb at sapo dot pt

another summary

------------------------------------------------------------------------

[2002-11-28 18:02:32] wb at sapo dot pt

sorry, im really not sure if this is a kind of bug or if i'm getting
something wrong: the two lines



echo 'foo'==0 ? 'is true ' : 'is false ';

if('bar'==0) echo 'is true '; else echo 'is false ';



will output:

is true is true



i dont understand why 'foo'==0 returns true.



the way i understand the manual, php should consider 'foo' a nonempty
string and 0 a zero integer. even if it would do a boolean comparison,
according to the manual 'foo' should be juggled to true and 0 should be
juggled to false. how can 'foo'==0 return true? have i missed
something?



i hope i do not resubmit a known issue, i tried some queries but i
really didnt know how to lookup this issue.



this happens with variables as well. i ran into this problem in my
programming when comparing array keys that could be numeric or string.
a 0 array key compared against any nonempty string array key always
returned true. it took me a while to find out that's why my program
didnīt work the way i thought it should. 



i hope this is not something that happens only to me, but i have tested
the two lines on three different boxes before writing to you.



my configure line:

./configure' '--with-mysql=/usr/local/mysql'
'--with-apache=../apache_1.3.26' '--enable-ftp'
'--with-zlib-dir=/usr/lib'



Best regards,

wolfgang

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=20708&edit=1

Reply via email to