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