json_decode的语法是:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
请注意第二个参数$assoc
,它是可选的,默认为false。
当此参数为true
时,json_decode
会将对象转换为关联数组。
我的问题是: 是否存在 NOT 想要将返回的对象转换为关联数组的情况?
答案 0 :(得分:5)
如果一个函数返回一个关联数组,那么在PHP 5.4之前你无法直接访问它的成员为foo()['xxx']。但是,如果它返回一个对象,您可以访问成员为foo() - > xxx。
当然,您可能还有一些库需要您将返回值作为对象访问。
答案 1 :(得分:2)
当您希望将其转换为对象时......
答案 2 :(得分:0)
我个人总是要求一个关联数组,并且发现它比$ assoc = false时返回的对象更容易使用。
但是我会说我见过的大多数其他人的代码(主要是各种Web服务客户端库)已经使用了带有$ assoc = false的json_decode和对象而不是关联数组。我认为这主要是一个偏好问题,因为我没有看到选择这种或那种方式的任何特别有力的理由。
很抱歉没有回答: - )
答案 3 :(得分:0)
在我的观点中,它强调了列表(在数字数组表示的php)和实体(对象)之间的区别。这可能更具可读性,因为可以读取使用的访问器([]
或->
)访问哪种数据。
答案 4 :(得分:-3)
您需要传递一个具有真值的额外参数。 json_decode($ P,TRUE);