如何访问混合对象(stdClass)和数组构造中的特定值?

时间:2014-07-07 13:19:01

标签: php

我的变量如下所示:

var_dump($content)

object(stdClass)#5 (1) {
  ["errors"]=>
  array(1) {
    [0]=>
    object(stdClass)#6 (2) {
      ["message"]=>
      string(24) "Invalid or expired token"
      ["code"]=>
      int(89)
    }
  }
}

如何获取message(“无效或过期令牌”)的值?

2 个答案:

答案 0 :(得分:1)

如果object(stdClass)中的值为var_dump,则使用->表示法访问其属性。因此,您案例的第一步是:

$content->errors

现在这是一个数组,因此您可以使用[..]表示法访问其键。下一步是:

$content->errors[0]

现在又是object(stdClass),因此您可以使用->访问其属性:

$content->errors[0]->message

但是,这种结构意味着可能存在多个错误。您应该循环遍历errors数组并依次输出所有错误:

foreach ($content->errors as $error) {
    echo $error->message;
}

答案 1 :(得分:0)

您必须进行迭代,并且可以直接访问消息var:

<?php

foreach ($content->errors as $item)
{
   echo $item->message;
}