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