我只需要显示此字符串的状态值,但我不知道该怎么做:
Web Object (
[data] => stdClass Object (
[operations] => stdClass Object (
[384322232931] => stdClass Object (
[status] => on
)
)
)
[error] =>
)
感谢您的阅读
答案 0 :(得分:3)
如果对象在$webobj
中,则为:
$webobj->data->operations->{'384322232931'}->status
当属性名称为数字时,您不能使用普通属性语法,您需要大括号和引号,如下所述:How to access object properties with names like integers?
如果该号码是帐户ID,您可以执行以下操作:
$webobj->data->operations->{$account_id}->status
其中$account_id
包含您的帐号。
答案 1 :(得分:0)
我认为数字384322232931
是"随机"如果是这样,你必须使用递归方法:
function captureStatus($data) {
$obj = (array) $data;
$key = key($obj);
if ($key === 'status') {
return $obj['status'];
} else if ($key !== NULL) {
return captureStatus($obj[$key]);
}
return NULL;
}
如果不是随机的,请使用@Barmar的方法
答案 2 :(得分:-1)
看起来你想要的属性是深深嵌入的,所以你可能遇到的问题是你需要经历几个孩子。
尝试: $ status = $ yourObj-> data-> operations-> 384322232931-> status;
我不知道这是否有帮助。我对“字符串”的含义感到有点困惑,因为你发布的内容看起来像是对象的print_r输出。
如果您要做的是从字符串中提取该值,那么我认为您可能会做一些不稳定的事情。