【问题标题】:Getting values of a stdObject in php在 php 中获取 stdObject 的值
【发布时间】:2014-07-31 09:04:06
【问题描述】:

我正在使用 API 来获取一些值。当我打印从 api 返回数组的变量时,它返回 stdObject Class

这是我请求数据的方式:

$graphObject = (new FacebookRequest( $session, 'GET', '/me?fields=id,first_name,last_name,tagged_places' ))->execute()->getGraphObject()->asArray();

我是这样打印的:

echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>'; 

这是它返回的内容:

    Array
(
    [id] => 111111
    [first_name] => Bob
    [last_name] => Stevensen
    [tagged_places] => stdClass Object
        (
            [data] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 111111
                            [created_time] => 1905-01-01T08:00:00+0000
                            [place] => stdClass Object
                                (
                                    [id] => 1111111
                                    [location] => stdClass Object
                                        (
                                            [latitude] => 36.1313
                                            [longitude] => -95.9373
                                        )

                                    [name] => Tulsa, Oklahoma
                                )

                        )

                    [1] => stdClass Object
                        (
                            [id] => 11111
                            [created_time] => 2014-05-30T21:41:11+0000
                            [place] => stdClass Object
                                (
                                    [id] => 111111
                                    [location] => stdClass Object
                                        (
                                            [city] => Okmulgee
                                            [country] => United States
                                            [latitude] => 35.623012460758
                                            [longitude] => -95.972782756346
                                            [state] => OK
                                            [street] => 104 S Morton Ave
                                            [zip] => 74447-5022
                                        )

                                    [name] => Ike's Downtown Pub & Eatery
                                )

                        )

我发现了一些这样的例子,说明从这个类对象中获取值的方法是这样的,

echo $graphObject->{'$STDCLASS'}->{'$FIELD I'M TRYING TO GET'};

我正在交换这些值,试图找出对象名称是什么,但我得到了这个错误:

Notice: Trying to get property of non-object in /file/path

stdClass Object 获取值的正确方法是什么我想也许我只是不理解Object 的名称是否可以从我在这里发布的代码中看出?

【问题讨论】:

  • 你不要用文字'stdClass'来调用它,$graphObject[0]-&gt;id 来访问它
  • 在检索数据方面,一个对象就像一个数组,只是你需要使用$object-&gt;value而不是$object['value']。您要检索什么数据?
  • 我想将每个值保存到数据库中。所以在这种情况下,id 创建了时间地点等
  • 所以你这么说...echo $graphObject-&gt;created_time;
  • 视情况而定,如果graphObject 有可能的项目,那么你需要循环它。

标签: php api stdclass


【解决方案1】:

该对象包含一个名为 Data 的数组,您可以访问:

foreach ($graphObject->data as $data) {
    echo $data->id
}

这需要对象并且应该可以直接访问它

虽然再三考虑..您可能还需要尝试 echo $data['id'];因为它不再是一个对象了..

如果这不起作用..试试:

$info = json_decode($graphObject,true);

看看你是否可以更轻松地处理 $info 变量。

【讨论】:

  • 试图以两种方式获得它,第一种方式和第二种方式我得到这些通知:尝试在 /home4/originl0/public_html/sandbox/includes/header.php 中获取非对象的属性第 173 行警告:在第 173 行的 /home4/originl0/public_html/sandbox/includes/header.php 中为 foreach() 提供的参数无效
猜你喜欢
  • 2012-03-17
  • 1970-01-01
  • 2011-04-06
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多