我有这个示例代码:
$array = array(
'GiamPy' => array(
'Age' => '18',
'Password' => array(
'password' => '1234',
'salt' => 'abcd',
'hash' => 'whirlpool'
),
'Something' => 'Else'
)
);
echo json_encode($array, JSON_PRETTY_PRINT);
我在PHP文档中看到,自PHP 5.5.0(最近),json_encode允许一个新的参数,这是深度.
>它的目的是什么?
>为什么我需要它?
>为什么在PHP 5.5.0中添加它?
解决方法:
该选项限制将要处理的深度(d’uh).数组的深度是通过嵌套的深度来衡量的.这是深度1的数组:
array(
'foo',
'bar',
'baz'
)
这是一个深度数组2:
array(
array(
'foo'
),
array(
'bar'
),
array(
'baz'
)
)
// ------ depth ------>
如果输入超过最大深度(默认为512),则json_encode将返回false.
为什么你可能会使用它是有争议的,你可能想要保护自己免受无意的无限递归或太多的资源使用.深度超过512级的数组可能具有无限递归引用,无法序列化.但是,如果您确定您的数组不是无限递归但是深度超过512,您可能希望明确地增加此限制.您可能还希望将限制降低为简单的错误捕获器;假设您希望结果具有最大深度,但您的输入数据可能有些不可预测.
标签:json,php
来源: https://codeday.me/bug/20190517/1120682.html