Hi, I used 2 x =. Using 3 x = would not result in that behaviour because string is not equal to number. I am fine === here. I explicitly talk about the 2 x = variant. BTW: # php -r 'var_dump("PHP" == 0);' bool(true) # php -r 'var_dump("PHP" == 1);' bool(false) regards Daniel -----Ursprüngliche Nachricht----- Von: georg [mailto:georg.chambert@xxxxxxxxx] Gesendet: Donnerstag, 13. Juni 2013 10:35 An: BUSCHKE Daniel Cc: php-general@xxxxxxxxxxxxx Betreff: Re: PHP is Zero Sorry missed to post list as well > Hi Daniel, > here is wild goose > > i assume you have 3 x = > in your "problem" formulation > which could possibly result in the akward standard C mixup; the > rightmost = first parsed and resulting in an ASSIGMENT to the variable > with that value, the comes the parsing of == which is the equivalence > test, and see; the variable is the same since it was just assigned > that value; if this theory is correct you would get TRUE regardless > what number is following :) /g > > ----- Original Message ----- > From: "BUSCHKE Daniel" <Daniel.BUSCHKE@xxxxxxxxxxxxx> > To: <php-general@xxxxxxxxxxxxx> > Sent: Thursday, June 13, 2013 9:59 AM > Subject: PHP is Zero > > >> Hi all, >> I want to start a discussion about a PHP behaviour that drives me >> crazy for years. For the beginning I would like you to guess what the >> result of the following snippet will be: >> >> var_dump('PHP' == 0); >> >> I know the difference of == and === but the result was unexcpected >> for me. And I hope it is also for you. The result is simply "true". >> Why is it true? I guess this happens because of the conversion from >> 'PHP' to a number which will be 0 in PHP. And of course 0 equals 0. >> There are several points that I just want to drop into this >> mailinglist to discuss >> about: >> >> 1. Why? :) >> 2. Why is PHP converting the String into a Number instead of >> converting the Number into a String? (If my guess concerning the >> behaviour is >> correct) >> 3. Why is PHP throwing data away which has the developer explicit >> given to the interpreter? >> 4. Why does var_dump(0 == 'PHP'); has the same result as the snippet >> above? This meens that the equal operator is not explictly >> implemented in the string or integer? >> 5. Thats a bug I have opend: https://bugs.php.net/bug.php?id=51739 >> where I also had the same problems because "8315e839da08e2a7afe6dd12ec58245d" >> was converted into float(INF) by throwing everything starting from >> "da08.." away. >> >> I am using PHP since the year 2000. This means I have 13 years of >> experience in PHP and I really would like you to NOT just answer >> "works as designed". I know it works as designed but I want to >> discuss the design. Also I know that the "fuzzy" behaviour of type >> conversion is a main feature of PHP. I guess this is one point which >> makes PHP that successfull. But - in my opinion - the described >> behaviour is to fuzzy and just confuses developers. >> >> Best Regards >> Daniel Buschke >> >> -- >> PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: >> http://www.php.net/unsub.php >> > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php