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

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

Прошу приведите реальные примеры ArrayObject, где они используются, чтобы раз и навсегда разобраться в этом вопросе.
  • Вопрос задан
  • 512 просмотров
Пригласить эксперта
Ответы на вопрос 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
Играю на балалайке
Наследование, Инкапсуляция, Полиморфизм.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект
25 апр. 2024, в 10:25
2000 руб./за проект