我有时会遇到这样的事情并提出异议:
stdClass Object
(
[batchcomplete] =>
[query] => stdClass Object
(
[pages] => stdClass Object
(
[48548] => stdClass Object
(
[pageid] => 48548
[ns] => 0
[title] => Dopamine对象键48548每次都会不同,所以我无法知道它的价值。假设我需要得到这个物体的标题(多巴胺),我需要这样做:
$title = $object->query->page->{*WILDCARD*}->title;但我还没想出办法。有没有一种方法可以跳过这样的对象键,而不必找出键的值呢?
发布于 2016-10-03 17:23:10
数值对象属性将无法工作。假设只有一个,则转换为一个数组并获取键:
$array = (array)$object->query->pages;
$title = $array[key($array)]->title;或者只需要得到一个元素:
$title = current((array)$object->query->pages)->title;如果这是来自JSON,那么首先您可能需要将其解码为一个数组。如果没有,那也许是这样:
$array = json_decode(json_encode($oject), true);对于非数字属性,这应该有效:
$var = key(get_object_vars($object->query->pages));
$title = $object->query->pages->$var->title;https://stackoverflow.com/questions/39836995
复制相似问题