Введение
PHP Manual
PHP Manual»Итераторы»ArrayIterator

Класс 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 function __construct(array|object $array = [], int $flags = 0)
public function append(mixed $value): void
public function asort(int $flags = SORT_REGULAR): true
public function count(): int
public function current(): mixed
public function getArrayCopy(): array
public function getFlags(): int
public function key(): string|int|null
public function ksort(int $flags = SORT_REGULAR): true
public function natcasesort(): true
public function natsort(): true
public function next(): void
public function offsetExists(mixed $key): bool
public function offsetGet(mixed $key): mixed
public function offsetSet(mixed $key, mixed $value): void
public function offsetUnset(mixed $key): void
public function rewind(): void
public function seek(int $offset): void
public function serialize(): string
public function setFlags(int $flags): void
public function uasort(callable $callback): true
public function uksort(callable $callback): true
public function unserialize(string $data): void
public function valid(): bool
}
ArrayIterator::STD_PROP_LIST

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

ArrayIterator::ARRAY_AS_PROPS

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

Версия Описание
8.4.0 The class constants are now typed.

Содержание

To Top