php中为什么要用json,php – 在JSON编码中使用深度的目的是什么?

我有这个示例代码:

$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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值