【问题标题】:How to access a member of an stdClass in PHP如何在 PHP 中访问 stdClass 的成员
【发布时间】:2014-01-22 18:32:48
【问题描述】:

我有一个已解码的 JSON 对象,但我无法访问该元素,因为它会引发错误。

stdClass Object
(
    [error] => InvalidRegistration
)

echo $device_response->error; // gives an error

我将如何访问属性?

下面是整个响应数组:

stdClass Object
(
    [multicast_id] => 5.3301797222004E+18
    [success] => 1
    [failure] => 3
    [canonical_ids] => 0
    [results] => Array
        (
            [0] => stdClass Object
                (
                    [message_id] => 0:1388910534147789%25796c83f9fd7ecd
                )

            [1] => stdClass Object
                (
                    [error] => InvalidRegistration
                )

            [2] => stdClass Object
                (
                    [error] => InvalidRegistration
                )

            [3] => stdClass Object
                (
                    [error] => InvalidRegistration
                )

        )

)

以下是我的访问方式:

foreach ($responseBody->results as $device_response) {

        echo $device_response->error;

    }

【问题讨论】:

  • “给出错误”---什么错误? PS:对于调试var_dump()print_r()更方便
  • 它会发出通知,我想检查是否有error 响应
  • @AdityaBhatt,什么通知?
  • @AdityaBhatt,所写的代码应该工作,因为results 是一个数组,并且您正在遍历它以寻找error 值。你能告诉我们确切地发生了什么而不是产生正确的输出吗?您是否注意到了来自 PHP 的一个警告?如果是这样,您能否提供完整和准确的错误消息?
  • 使用 json_decode($retrievedresult, true);这将为您提供数组而不是对象,您可以轻松访问

标签: php json stdclass


【解决方案1】:
$obj = new stdClass();
$obj->foo = "var";
echo $obj->foo;

【讨论】:

  • 这甚至是如何远程开始回答问题的?
  • 这会打印“var”吗?
猜你喜欢
  • 2012-03-10
  • 2011-06-07
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
  • 2012-06-24
相关资源
最近更新 更多