是否可以在全局禁用php 5.5中的JSON_NUMERIC_CHECK? 我需要将所有编码的JSON回复视为字符串。
感谢。
答案 0 :(得分:1)
禁用JSON_NUMERIC_CHECK
?为什么?据我所知,这只是一个选择。如果你在没有它的情况下拨打json_encode
,它就不会将号码(原始字符串)转换为整数。
的输出
echo json_encode(array('number' => '603'));
echo json_encode(array('number' => '603'), JSON_NUMERIC_CHECK);
是
{"number":"603"}
{"number":603}
正如所料。
如果要将数组中的所有整数转换为字符串,则应在json_encode
调用之前强制转换它们。
答案 1 :(得分:0)
不,你不能 但是,使用对象是一个很好的用例,例如:
class Json
{
/**
* @var int
*/
protected $defaultOptions = JSON_NUMERIC_CHECK;
public function encode($value, $options=0, $depth=512)
{
$options = 0 === $options ? $this->defaultOptions : $options;
return json_encode($value, $options, $depth);
}
}
$json = new Json();
print ($json->encode([ 'row_id' => '1', 'name' => 'George' ]));
因此,您可以为Json::$defaultOptions
分配您想要的默认选项,并且它可以在全球范围内使用(服务)。