Введение
PHP Manual
PHP Manual»Структуры данных»ArrayObject

Класс ArrayObject

(PHP 5, PHP 7, PHP 8)

Класс разрешает работать со своими экземплярами как с массивами.

Замечание:

Оборачивание объектов классом ArrayObject в корне ошибочно, поэтому, хотя конструктор и принимает объекты, экземпляры класса инициализируют только массивами.

class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable {
/* Константы */
public const int STD_PROP_LIST;
public const int ARRAY_AS_PROPS;
/* Методы */
public function __construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)
public function append(mixed $value): void
public function asort(int $flags = SORT_REGULAR): true
public function count(): int
public function exchangeArray(array|object $array): array
public function getArrayCopy(): array
public function getFlags(): int
public function getIterator(): Iterator
public function getIteratorClass(): string
public function ksort(int $flags = SORT_REGULAR): true
public function natcasesort(): true
public function natsort(): true
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 serialize(): string
public function setFlags(int $flags): void
public function setIteratorClass(string $iteratorClass): void
public function uasort(callable $callback): true
public function uksort(callable $callback): true
public function unserialize(string $data): void
}
ArrayObject::STD_PROP_LIST

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

ArrayObject::ARRAY_AS_PROPS

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

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

Содержание

To Top