Класс ArrayIteratorArrayIterator
&reftitle.intro;
Класс поддерживает удаление элементов, и изменение ключей или значений
при итерации по массивам
или объектам.
Для многократного перебора одного и того же массива рекомендуют создавать
экземпляр класса ArrayObject. Конструктор класса принимает
исходный массив и сохраняет массив внутренне. Затем к элементам внутреннего массива
обращаются либо путём передачи объекта ArrayObject в конструкцию &foreach;,
при которой объект массива неявно создаёт экземпляр итератора ArrayIterator,
либо путём вызова метода ArrayObject::getIterator вручную.
&reftitle.classsynopsis;
ArrayIteratorimplementsSeekableIteratorArrayAccessSerializableCountable&Constants;publicconstintArrayIterator::STD_PROP_LISTpublicconstintArrayIterator::ARRAY_AS_PROPS&Methods;
&reftitle.constants;
Флаги ArrayIteratorArrayIterator::STD_PROP_LIST
При установке флага свойства объекта сохраняют стандартное поведение.
Вызов на объекте функции var_dump() показывает, что свойства хранятся стандартно, а во внутреннее хранилище
попадают только элементы массива. При итерации по объекту языковой конструкцией foreach или другими средствами
доступа к спискам выдаются только элементы хранилища. При этом доступ к элементам хранилища возможен
только через квадратные скобки.
ArrayIterator::ARRAY_AS_PROPS
При установке флага свойства объекта и элементы массива сохраняются во внутреннем хранилище
и при итерации по объекту выдаются как элементы единого списка. Флаг разрешает обращаться к элементам
внутреннего хранилища для чтения или записи как через синтаксис квадратных скобок, так и через оператор доступа к свойствам объекта.
&reference.spl.entities.arrayiterator;