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 = 


# php -r 'var_dump("PHP" == 0);'
# php -r 'var_dump("PHP" == 1);'


-----Urspr√ľngliche Nachricht-----
Von: georg [mailto:georg.chamb...@telia.com] 
Gesendet: Donnerstag, 13. Juni 2013 10:35
An: BUSCHKE Daniel
Cc: php-general@lists.php.net
Betreff: Re: [PHP] 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.busc...@nextiraone.eu>
> To: <php-general@lists.php.net>
> Sent: Thursday, June 13, 2013 9:59 AM
> Subject: [PHP] 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

Reply via email to