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

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

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

Прошу приведите реальные примеры ArrayObject, где они используются, чтобы раз и навсегда разобраться в этом вопросе.
  • Вопрос задан
  • 531 просмотр
Подписаться 6 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
Играю на балалайке
Наследование, Инкапсуляция, Полиморфизм.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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