Попытка получить свойство необъекта в объекте stdclass

Я пытаюсь интегрировать с API. Предполагая, что следующий код работает.

$lists = $ac->api("list/list_", array("ids" => "all"));

echo"<pre>"; print_r( $lists); echo"</pre>";

Выводит следующий объект stdclass

stdClass Object
(
[0] => stdClass Object
(
[id] => 1
[name] => List 3
[cdate] => 2018-02-27 08:19:39
[private] => 0
[userid] => 1
[subscriber_count] => 0
)

[result_code] => 1
[result_message] => Success: Something is returned
[result_output] => json
[http_code] => 200
[success] => 1
)

Следующий код

            foreach($lists as $list) {

echo $list->id;

}

Показывает мне ошибку

Trying to get property of non-object

Строка $ list-> id неверна. Как я могу это исправить?

1

Решение

Это странная структура, то, что происходит, это ее зацикливание result_code, result_message, result_output, success значения которых не являются объектами.

Либо исправьте это, либо сделайте проверку в цикле сортировки.

foreach ($lists as $key => $list) {
if (!is_numeric($key) || !is_object($list)) {
continue;
}
echo $list->id;
}
1

Другие решения

попробуй это

foreach($lists as $list) {
$list = (array)$list;
if(isset($list['id'])){
echo $list['id'];
}
}
0

PHP-объекты чисты и просты в написании.

// Вывод значения PHP Array

echo $array['value'];

// Вывод значения объекта PHP

echo $object->value;

Теперь перейдем к преобразованию (приведению) массива PHP в объект PHP. Это очень просто. Я просто набираю приведение массива как объекта при его возвращении.

function array_to_object($array) {
return (object) $array;
}

Выше приведен только пример. Вам не нужна функция PHP для преобразования массива в объект. Функция (объект) сделает это с любым массивом PHP. Если вам когда-либо понадобится изменить объект в массив, используйте функцию приведения типа (массив).

function object_to_array($object) {
return (array) $object;
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector