Класс ArrayIterator

(PHP 5, PHP 7, PHP 8)

Введение

Класс разрешает удаление элементов, и изменение ключей или значений при итерации по массивам или объектам.

Для многократного перебора одного и того же массива рекомендуют создавать экземпляр класса ArrayObject. Конструктор класса принимает исходный массив и сохраняет массив внутренне. Затем к элементам внутреннего массива обращаются либо путём передачи объекта ArrayObject в конструкцию foreach, при которой объект массива неявно создаёт экземпляр итератора ArrayIterator, либо путём вызова метода ArrayObject::getIterator() вручную.

Обзор класса

class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable {
/* Константы */
public const int STD_PROP_LIST;
public const int ARRAY_AS_PROPS;
/* Методы */
public __construct(array|object $array = [], int $flags = 0)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public current(): mixed
public getFlags(): int
public key(): string|int|null
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public next(): void
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public rewind(): void
public seek(int $offset): void
public serialize(): string
public setFlags(int $flags): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
public valid(): bool
}

Предопределённые константы

Флаги ArrayIterator

ArrayIterator::STD_PROP_LIST

При установке флага свойства объекта сохраняют стандартное поведение. Вызов на объекте функции var_dump() показывает, что свойства хранятся стандартно, а во внутреннее хранилище попадают только элементы массива. При итерации по объекту языковой конструкцией foreach или другими средствами доступа к спискам выдаются только элементы хранилища. При этом доступ к элементам хранилища возможен только через квадратные скобки.

ArrayIterator::ARRAY_AS_PROPS

При установке флага свойства объекта и элементы массива сохраняются во внутреннем хранилище и при итерации по объекту выдаются как элементы единого списка. Флаг разрешает обращаться к элементам внутреннего хранилища для чтения или записи как через синтаксис квадратных скобок, так и через оператор доступа к свойствам объекта.

Содержание