Re: Ranges for case statement and a WTF moment.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 5, 2011 at 8:28 AM, Richard Quadling <rquadling@xxxxxxxxx>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

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux