数字字符串与数字-PHP json_encode 编码数组
json_encode 将数组转为json字符串的坑
json_encode 是我们经常用到的一个函数,它可以将数组转为json字符串,考虑下面这种情况
echo json_encode(['age' => 1]);
echo PHP_EOL;
echo json_encode(['age' => "1"]);
{"age":1}
{"age":"1"}
对于age的值是数字还是数字字符串,对json_encode之后的值是不一样的,通常情况下不会有什么影响,但是如果我们拿json_encode之后的两个值作比较就会出现问题。
那么如何避免这种问题呢,json_encode还为我们提供了第二个参数
这里我们使用
JSON_NUMERIC_CHECK (int) 将所有数字字符串编码成数字(numbers)。 自 PHP 5.3.3 起生效。
echo json_encode(['age' => 1], JSON_NUMERIC_CHECK);
echo PHP_EOL;
echo json_encode(['age' => "1"], JSON_NUMERIC_CHECK);
{"age":1}
{"age":1}
结果就会一致了

浙公网安备 33010602011771号