AW: [PHP] PHP is Zero

[email protected] (BUSCHKE Daniel)
Newsgroups php.general
Message-ID <4BBE05E95247E04388B4B17B556BEA1E0CBE02A9BA@ucmai003.uc.nextiraone-eu.ned>
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:[email protected]] 
Gesendet: Donnerstag, 13. Juni 2013 10:35
An: BUSCHKE Daniel
Cc: [email protected]
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" <[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.