我有一个函数可以返回如下信息:
return json_encode(["id" => 0]);
也尝试了
return json_encode(array("id" => 0));
和
return json_encode(array("id" => 0), JSON_FORCE_OBJECT);
在调用函数中,我将返回的值存储在$ var变量中。然后我尝试访问" id"要素如下:
$var->id
我得到尝试获取非对象错误的属性。
我在php.net上查看了Stackoverflow上的不同问题,但无法找到解决方案。
答案 0 :(得分:1)
尝试var_dump
'返回值。 json_encode
将JSON作为字符串返回,然后可以将其解析为对象或数组。如果$var
是json_encode
的结果,那么您无法先解析编码数据的任何属性。
根据您修改后的问题:
看起来你真正想要做的就是将一个数组转换为一个对象。您需要做的就是:
$var = (object) ['id' => 0];
JSON_FORCE_OBJECT
标志将数组转换为对象并将其编码为。结果仍然是JSON字符串。如果要在该字符串上调用json_decode
,则会有一个对象,但这不是将数组转换为对象的正确方法。