PHP json_encode float
来源:互联网 发布:我的世界如何添加端口 编辑:程序博客网 时间:2024/06/05 04:21
最近调试一个接口发现PHP json_encode 会讲超大类型值转成一个float类型举个简单例子:问题描述: 1:首先我有个接口且接口参数类型是个string类型 2:比如现在要有个插入一条订单信息记录,但是区分订单类型(由于业务扩展接口参数发生变化) 老参数:12341711131721115295329 //就一个订单号 新参数: { "flightOrderId": "12341711131721115295329", "type": "1" //订单类型 } 注意:其实参数类型都是string (此时老的参数会有问题,问题例子如下)当参数是只有订单号的时候(老参数): $data = json_decode($flightOrderId, true); //会将超长的订单值,转换成float(12341711131721115295329 -> 1.23417111317E+22) if (!is_array($data)) {//说名只有订单号,没有类型type,需要兼容 $data = array( 'flightOrderId' => $data, 'type' => 0 ); } $flightOrderId = $data['flightOrderId']; //此时的值已经变成float(1.23417111317E+22)类型了 $orderType = $data['type']; //do Anything ....原因分析:(输出当前PHP的版本号 var_dump(PHP_VERSION) ) ⚠:发现不同PHP的版本对json_decode处理的返回值还不一样 我用一台PHP版本为:5.4.45 运用行 json_decode($flightOrderId, true) 的时候会改变值转换成 float(1.23417111317E) 我用一台PHP版本为:5.5.9-1运用行 json_decode($flightOrderId, true) 值会是正常12341711131721115295329解决方法: $data = json_decode($flightOrderId, true,512,JSON_BIGINT_AS_STRING); //即可兼容 json_decode参数手册:http://php.net/manual/en/function.json-decode.php
阅读全文
0 0
- PHP json_encode float
- PHP json_encode
- PHP json_encode
- php json_encode
- php json_encode
- PHP-json_encode
- PHP json_encode
- PHP json_encode()
- json_encode.php
- php json_encode()
- php 关于json_encode/json_decode和json_encode/unserialize
- php json_encode 问题解决小记
- PHP json_encode() 函数介绍
- PHP json_encode() 函数介绍
- php json_encode扩展分析
- PHP json_encode()介绍
- json_encode的php实现
- PHP json_encode() 函数介绍
- 关于spark 矩阵转置的一个坑,解决了
- 人工智能浅谈
- ipython
- phpstorm 清除缓存
- Js实现简单计算器
- PHP json_encode float
- 6.10
- zookeeper 中 Watcher 通知机制的一点理解
- PHP的PDO执行MYSQL的LOAD DATA INFILE样例代码
- 习题6.11
- 数码时钟
- XStream使用方法
- Hive系列之HSQL转换成MapReduce过程
- [TensorFlow学习手记] 1-简单例子