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