Re: [PHP] PHP is Zero

[email protected] ("georg")
Newsgroups php.general
Message-ID <767B2B477BF74AED971B24D4EACE6642@guscha>
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" <[email protected]>
> To: <[email protected]>
> 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
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.