如果在32位系统(Windows7)中在PHP 5.3.10上运行此代码:
<?php
$object = new stdClass;
$object->flaotAsString = "8226347662.8374";
$json = json_encode($object, JSON_NUMERIC_CHECK);
var_dump($object);
var_dump($json);
输出结果为:
object(stdClass)[1]
public 'flaotAsString' => string '8226347662.8374' (length=15)
string '{"flaotAsString":8226347662.84}' (length=31)
我希望json字符串中的数字与对象中的字符串相同(不会丢失预设)。
作为PHP的一个错误(我还没有确认),对于这个版本和平台我怎么能这样做?
答案 0 :(得分:0)
class stdClass#1 (1) {
public $flaotAsString =>
string(15) "8226347662.8374"
}
string(33) "{"flaotAsString":8226347662.8374}"
它适用于64位系统上的PHP 5.5。问题必须来自你的平台。如果你不能升级到64位架构,那么一个丑陋的解决方案就是使用字符串而不是int。