Что эквивалентно `data [] = $ var` для объекта? - PullRequest
0 голосов
/ 16 августа 2011

Я перебираю запрос mysql и сохраняю значения в объекте. Я хочу автоматически выполнять итерации объекта, как если бы я сохранял данные в нем.

Вот что я делаю:

$i = 0;
foreach( $query->result() as $row )
{
    $data->$i = $row;
    $i++;
}

Я хотел бы имитировать приведенный ниже код, но для объекта, устраняя необходимость в $i в приведенном выше коде:

foreach( $query->result() as $row )
    $data[] = $row;

Что эквивалентно $data[] = $row для итерации объекта при сохранении в нем переменных в цикле foreach или while?

ПРИМЕЧАНИЕ. Ясно, что я не должен использовать объекты таким образом. Не могли бы вы пояснить, почему это так?

Ответы [ 3 ]

4 голосов
/ 16 августа 2011

Нет, потому что объекты не работают таким образом. Кроме того, если вы хотите хранить вещи линейным образом, вам не следует использовать объект таким образом, независимо от этого.

1 голос
/ 28 апреля 2013

вы можете использовать массив для хранения данных, а затем преобразовать его в объект!

1 голос
/ 16 августа 2011

Если вы хотите создать объект, который вы можете перебрать, используя foreach(), он должен реализовать интерфейс итератора, ср. http://php.net/iterator

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...