Sara,

Could you not treat a very large integer as a double? We do that in a few
areas of the code already.

On Thu, May 20, 2010 at 3:50 PM, Sara Golemon <poll...@php.net> wrote:

> I know this issue has been seen before, but I hope to do something about
> it.
>
> $json = '1234567890123456789';
> $x = json_decode($json);
> /* $x is now a float *aproximately*
>  * equal to the original value
>  */
>
> For database indexes, being off by one can be disasterous for application
> flow, so I'd like to include the option to decode very large integers as
> strings.
>
> To that end, I propose a change in json_decode()'s signature to add an
> optional fourth argument, mirroring json_encode()'s second argument:
>
> mixed json_decode(string $json[, bool $assoc = false[, int $depth = 512[,
> int $options]]]);
>
> Where $options is a bitmask of zero or more of the following:
>
> JSON_BIGINT_STRING - Store large integers as their original string value
>
> With the corresponding simple changes in json.c and JSON_parser.c
>
> If noone objects or offers comments, I'll implement this.
>
> -Sara
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to