php – 为什么有json_decode($array,TRUE)?

我将字典作为JSON发送到服务器.字典只包含1个键,即一个项目数组:

header('Content-type: application/json');

$request = json_decode(file_get_contents('PHP://input'));

$array = json_decode($request['array']);

键’array’的值是一个数组,不能是一个对象.

所以,基本上这两种方法将返回相同的东西:

$array = json_decode($request['array']);

$array = json_decode($request['array'], TRUE);

我对吗?

方法的唯一用途是当您要将对象转换为数组时:

$array = json_decode($request['object'], TRUE);

你为什么要这样做?

我的意思是,我确实知道可能有这方面的应用,但另一方面,我花了一整天的时间来消化这种思维方式,它仍然感觉有一个巨大的思维差距.

这种小小的便利与解析数据的具体方式相混淆,只会让像我这样的新手感到困惑.

解决方法:

Javascript / JSON中的数组和对象之间有明显的区别.数组没有显式索引,但是以数字方式编制索引,而对象未排序且具有命名属性.认情况下,json_decode尊重这种差异,并将JSON数组解码为PHP数组,将JSON对象解码为PHP对象(stdClass的实例).

但是,PHP的数组也恰好支持关联索引;所以JSON对象可以解码为PHP对象或PHP数组.您可以使用第二个参数选择您喜欢的json_decode.这里两种不同语言之间没有100%明确的1:1映射,所以有一个偏好.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...