PHP 中使用 json_decode() 处理无符号整数

发布于 2024-10-19 01:09:30 字数 164 浏览 4 评论 0原文

我意识到 PHP 不支持无符号整数,但我想知道如何解决 json_decode() 遇到的这个问题。当我解码包含大于 2^31 的无符号整数的 JSON 时,它们的结果为负,因为它们被视为有符号整数。我可以通过配置 php.ini 文件来纠正这个问题,还是只是有一些关于 json_decode 的问题我没有得到?

I realize that PHP does not support unsigned integers, but I'm wondering how to solve this issue I'm having with json_decode(). When I decode JSON that contains unsigned ints above 2^31, they come out negative, since they are being treated as signed ints. Is this something I can rectify by configuring my php.ini file or is there just something about json_decode that I'm not getting?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

腹黑女流氓 2024-10-26 01:09:31

您可以使用 PHP BC 数学扩展

对于任意精度的数学
PHP 提供了二进制计算器
支持任意大小的数字
精度,表示为字符串。

You can use the PHP BC Math extension!

For arbitrary precision mathematics
PHP offers the Binary Calculator which
supports numbers of any size and
precision, represented as strings.

心的位置 2024-10-26 01:09:30

PHP 的开发版本似乎有一个计划选项 json_decode()正是针对这个问题:JSON_BIGINT_AS_STRING(请参阅手册中的示例#5),但目前似乎没有针对此问题的生产修复。

另请参阅用户贡献的注释中的此评论

有可能在编码端以某种方式输出字符串吗?

The development version of PHP seems to have a planned option to json_decode() exactly for this problem: JSON_BIGINT_AS_STRING (see Example #5 in the manual) but there seems to be no production fix for this right now.

See also this comment in the user contributed notes.

Any chance of outputting strings on the encoding end somehow?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文