Вопрос
Сценарий:
$x = json_decode( $x );
foreach ( $x as $item )
{
$info[] = $item; //ERROR
}
Я перебираю фид данных, чтобы получить данные. Я хочу добавить элементы в объект stdClass в цикле. Как бы я это сделал? Я не очень знаком с stdobj.
Другие советы
Если я вас правильно понимаю, вы должны просто следовать синтаксису обычного объекта, чтобы получить желаемый результат. Добавьте необязательный второй параметр в json_decode
, установленный в true
, чтобы ваш json был декодирован как ассоциативный массив, как будто это форма, которую вы используете в . р>
$info = new stdClass();
$x = json_decode( $x, true );
foreach ( $x as $key => $val) {
$info->$key = $val;
}
Как указал Игнас, результаты json_decode ()
уже возвращаются как объект stdClass, поэтому, если вы просто использовали $ x = json_decode ($ x)
вам вообще не понадобится $ info
... у вас уже будет $ x
в качестве объекта stdClass.
SPL
ArrayObject
давайте использовать тот же синтаксис, который генерирует ошибку в вашем примере. Это при условии, что у вас есть возможность использовать ArrayObject
вместо stdClass
.