首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象键的PHP通配符

对象键的PHP通配符
EN

Stack Overflow用户
提问于 2016-10-03 17:18:51
回答 1查看 610关注 0票数 1

我有时会遇到这样的事情并提出异议:

代码语言:javascript
复制
stdClass Object
(
[batchcomplete] => 
[query] => stdClass Object
    (
        [pages] => stdClass Object
            (
                [48548] => stdClass Object
                    (
                        [pageid] => 48548
                        [ns] => 0
                        [title] => Dopamine

对象键48548每次都会不同,所以我无法知道它的价值。假设我需要得到这个物体的标题(多巴胺),我需要这样做:

代码语言:javascript
复制
$title = $object->query->page->{*WILDCARD*}->title;

但我还没想出办法。有没有一种方法可以跳过这样的对象键,而不必找出键的值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-03 17:23:10

数值对象属性将无法工作。假设只有一个,则转换为一个数组并获取键:

代码语言:javascript
复制
$array = (array)$object->query->pages;
$title = $array[key($array)]->title;

或者只需要得到一个元素:

代码语言:javascript
复制
$title = current((array)$object->query->pages)->title;

如果这是来自JSON,那么首先您可能需要将其解码为一个数组。如果没有,那也许是这样:

代码语言:javascript
复制
$array = json_decode(json_encode($oject), true);

对于非数字属性,这应该有效:

代码语言:javascript
复制
$var = key(get_object_vars($object->query->pages));
$title = $object->query->pages->$var->title;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39836995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档