PHP - предупреждение - свойство Undefined: stdClass - фиксируют?

Я заставляю это предупреждение в своих журналах ошибок и требуемый знать, как исправить, это выходит в моем коде.

Предупреждение: Уведомление PHP: Неопределенное свойство: stdClass:: $records в script.php на строке 440

Некоторый код:

// Parse object to get account id's
// The response doesn't have the records attribute sometimes.
$role_arr = getRole($response->records);  // Line 440 

Ответ, если записи существует

stdClass Object
(
    [done] => 1
    [queryLocator] =>
    [records] => Array
        (
            [0] => stdClass Object
                (
                    [type] => User
                    [Id] =>
                    [any] => stdClass Object
                        (
                            [type] => My Role
                            [Id] =>
                            [any] => <sf:Name>My Name</sf:Name>
                        )

                )

        )

    [size] => 1
)

Ответ, если записи не существует

stdClass Object
(
    [done] => 1
    [queryLocator] =>
    [size] => 0
)

Я думал что-то как array_key_exists () функциональность, но для объектов, чего-нибудь? или я иду об этом неправильным путем?

51
задан Phill Pafford 18 March 2010 в 06:32
поделиться

4 ответа

if(isset($response->records))
    print "we've got records!";
112
ответ дан 7 November 2019 в 09:53
поделиться

В зависимости от того, ищете ли вы элемент или метод, вы можете использовать любую из этих двух функций, чтобы узнать, является ли элемент / метод существует в конкретном объекте:

http://php.net/manual/en/function.method-exists.php

http://php.net/manual/en/function.property-exists.php

В общем, если вам нужны все они:

http://php.net/manual/en/function.get-object-vars.php

1
ответ дан 7 November 2019 в 09:53
поделиться

Вы можете использовать property_exists
http://www.php.net/manual/en/function.property-exists.php

5
ответ дан 7 November 2019 в 09:53
поделиться

Кажется, что сам ответ имеет размер записей. Вы можете использовать это, чтобы проверить, существуют ли записи. Что-то вроде:

if($response->size > 0){
    $role_arr = getRole($response->records);
}
2
ответ дан 7 November 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: