Re: Ranges for case statement and a WTF moment.

From: Date: Thu, 07 Apr 2011 08:39:18 +0000
Subject: Re: Ranges for case statement and a WTF moment.
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-312293@lists.php.net to get a copy of this message
On 6 April 2011 21:08, David Harkness <david.h@highgearmedia.com> wrote: > On Tue, Apr 5, 2011 at 8:28 AM, Richard Quadling <rquadling@gmail.com> > wrote: >> >> php -r "var_dump(10...19);" >> >> Interesting output ... >> >> string(6) "100.19" >> >> And that took me a little while to work out. >> >> It's all to do with PHP's type juggling. >> >> 10...19 >> >> What I'm not sure is why the middle empty string is output as 0. >> >> "10" . . ".19" becomes "10" . "0" . ".19" >> which becomes "100.19" > > My guess is that PHP parses this as >     10<decimal-point> <dot-operator> <decimal-point>19 > Because the dot operator requires strings, PHP converts both numbers to > strings as >     '10' <dot-operator> '0.19' > which becomes your >     100.19 > You can see this with >     php > echo (string) 10. >     10 >     php > echo (string) .19 >     0.19 > David > Aha! Yes. That makes a LOT more sense. Excellent deduction. So. Not a bug at all. Just a really weird sequence. And obviously, spaces and more dots can't work. Richard. -- Richard Quadling Twitter : EE : Zend @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

« previous php.general (#312293) next »