服务器环境应该也没有动过,数据库数据类型没有修改。
之前一直是正常返回 int 类型,今天突然都自动变成 string 了,客户端因为没有做判断崩溃率骤增。
API 是对 WeCenter 的二次开发。
求助如何解决...
1
SoloCompany 2015-04-28 14:35:31 +08:00 1
为什么不是找你的同事问而是来这里问
|
2
b821025551b 2015-04-28 14:37:16 +08:00
PHP里如果不强制声明一下类型的话自然会自动转换的,解决办法就是在输出时加个(int)
|
3
b821025551b 2015-04-28 14:38:16 +08:00 1
不过话说回来,json数据不都是string么
|
4
angelhorn 2015-04-28 15:12:57 +08:00
你数据库的版本一定不对 可能是重装编译了PHP或者是MYSQL重装 也可能是怎么样。。
首先MySQL的版本应该大于5.2 再有最最最重要的 PHP.INI 里面看看是否开启了mysqlnd这个是最坑的。。只要是php.ini里搜索不到mysqlnd 那基本可以88了 |
5
neilwong 2015-04-28 15:44:32 +08:00
php里做个断点就能看到是哪里出问题了吧。。。
|
6
msg7086 2015-04-28 15:47:26 +08:00
@b821025551b 并不是。可以有数字类型。
|
7
pantaovay 2015-04-28 22:54:39 +08:00
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
有一个option是JSON_NUMERIC_CHECK Encodes numeric strings as numbers. Available since PHP 5.3.3. |
8
free9fw 2015-04-29 09:05:52 +08:00
function str2int($data, $transformColumn = []) {
$rs = []; array_walk($data, function($item, $key) use(&$rs, $transformColumn){ array_walk($item, function($iv, $ik) use(&$rs, $key, $transformColumn){ $rs[$key][$ik] = !in_array($ik, $transformColumn) ? $iv : $iv + 0; }); }); return $rs; } |
9
DEATHKEL 2017-02-14 14:37:11 +08:00
请问这个问题解决了吗,我最近也遇到这个问题了
|