Получение значений stdObject в php

Я использую 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 Можно ли сказать по коду, который я разместил здесь?

1 ответ

Объект содержит массив Data, к которому вы можете получить доступ:

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

Это берет объект и должен сделать его напрямую доступным

хотя, если подумать.. вам также может понадобиться попробовать echo $data['id']; как его не объект больше..

Если это работает.. попробуйте:

$info = json_decode($graphObject,true);

и посмотрим, сможете ли вы работать с переменной $info проще.

Другие вопросы по тегам