【发布时间】:2015-05-24 15:19:55
【问题描述】:
我将字典作为 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);
你为什么要这样做?
我的意思是,我确实知道这可能有应用程序,但另一方面,我花了一整天的时间来消化这种思维方式,但我仍然觉得思维上有很大的差距。
这种小小的便利与解析数据的具体方式相混淆,只会让像我这样的新手感到困惑。
【问题讨论】:
-
嗯,在许多情况下,使用关联数组比使用标准类对象更容易,这就是原因。
-
如果使用关联数组更容易,那么......你为什么要首先发送一个对象???
-
您发送的不是对象,而是 JSON 格式的字符串。如何在服务器上解析 JSON 取决于您,一般而言,关联数组通常比标准类对象更易于使用。
-
如果它通常更容易为什么不是默认方法?为什么默认方法通常更难?你明白我在说什么吗?为什么我认为这是不一致的?
-
我想这取决于,对象并不是真的很难使用,但在 PHP 中大多数时候你会使用关联数组,比如你创建的超全局变量或数据结构等。有时你会创建对象和对象都很好,只是有点不同。要将简单的 JSON 结构转换为可用的东西,通常更熟悉的是获取数组而不是对象,但也许您应该改为阅读关联数组和 stdClass 对象之间的区别