我的数据库ID大于2147483647(整数),所以当我将数据转换为Json时,如果我得到该ID,则转为2147483647。
这是我的json结果
[
{"id":2147483647, "district_id":7171051, "name":"KARAME"},
{"id":2147483647, "district_id":7171051, "name":"KETANG BARU"},
{"id":2147483647, "district_id":7171051, "name":"WAWONASA"},
{"id":2147483647, "district_id":7171051, "name":"TERNATE BARU"},
{"id":2147483647, "district_id":7171051, "name":"TERNATE TANJUNG"},
{"id":2147483647, "district_id":7171051, "name":"KOMBOS BARAT"},
{"id":2147483647, "district_id":7171051, "name":"KOMBOS TIMUR"},
{"id":2147483647, "district_id":7171051, "name":"SINGKIL SATU"},
{"id":2147483647, "district_id":7171051, "name":"SINGKIL DUA"}
]
我的实际数据是
[
{"id":7171051001, "district_id":7171051, "name":"KARAME"},
{"id":7171051002, "district_id":7171051, "name":"KETANG BARU"},
{"id":7171051003, "district_id":7171051, "name":"WAWONASA"},
{"id":7171051004, "district_id":7171051, "name":"TERNATE BARU"},
{"id":7171051005, "district_id":7171051, "name":"TERNATE TANJUNG"},
{"id":7171051006, "district_id":7171051, "name":"KOMBOS BARAT"},
{"id":7171051007, "district_id":7171051, "name":"KOMBOS TIMUR"},
{"id":7171051008, "district_id":7171051, "name":"SINGKIL SATU"},
{"id":7171051009, "district_id":7171051, "name":"SINGKIL DUA"}
]
我正在使用Laravel 5.4 如何使它成为我的实际身份证? 感谢。
答案 0 :(得分:3)
在PHP中,你不能有大于PHP_INT_MAX
的整数,它在32位硬件(或32位PHP)中是2147483647 = 2^31-1
,这是你的数字{&#39}。得到(作为参考,在64位它9223372036854775807 = 2^63-1
)。而且,您的原始数据,无论您从何处获取,都将ID作为字符串(请注意它们周围的引号)。
因此,当您将其强制转换为整数时,它会被截断为2147483647
。现在,您有两种选择:
9223372036854775807
限制,这显然要高得多。答案 1 :(得分:2)
在64x位平台上,PHP中的整数值大于2147483647。如果使用32x位平台,则限制最大整数值。 这个问题的另一个原因是PHP配置中的PHP_INT_SIZE var(php.ini)。
Json并不重要。