Задать вопрос

В чем преимущество ArrayObject над Array?

Никак не могу понять в чем разница, а главное преимущество ArrayObject над Array.
Моделька, у которой запрашивают данные, возвращает массив объектов из базы данных.
Дальше уже идет работа с массивом объектов.
Можно вернуть и ArrayObject, но зачем и для чего не представляю.

Прошу приведите реальные примеры ArrayObject, где они используются, чтобы раз и навсегда разобраться в этом вопросе.
  • Вопрос задан
  • 521 просмотр
Подписаться 6 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
27cm
@27cm
TODO: Написать статус
Моделька, у которой запрашивают данные, возвращает массив объектов из базы данных.
Дальше уже идет работа с массивом объектов.

Возьмите ситуацию, когда массив очень большой (сотни тысяч объектов) и заранее не известно, какая часть массива понадобится, то есть работать будет как-то так:
foreach ($model->getArray() as $object) {
    // Делаем что-то с $object...
    if (!rand(0, 10)) {
        break;
    }
}

Если делать так, как вы предлагаете (через array), придётся создавать и возвращать полный массив объектов, большая часть из которых не будет использована. Или менять код на что-то вроде:
foreach ($model->getIdsArray() as $id) {
    // Создаём $object по $id, запросив данные из хранилища
    // Делаем что-то с $object...
    if (!rand(0, 10)) {
        break;
    }
}


С помощью ArrayObject можно легко реализовать создание только реально использовавшихся объектов массива и не дублировать код создания объектов в каждом подобном цикле.
Ответ написан
Комментировать
banderos120
@banderos120
Играю на балалайке
Наследование, Инкапсуляция, Полиморфизм.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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