Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

ArrayAccess

Интерфейс объектов с доступом через квадратные скобки.

Синтаксис

class Name implements ArrayAccess

Возвращаемое значение

ArrayAccessМетоды `offsetExists()`, `offsetGet()`, `offsetSet()`, `offsetUnset()`.

Примеры

Настройки с доступом как к массиву:

<?php
 
class Config implements ArrayAccess
{
    private array $data = ['theme' => 'light'];
 
    public function offsetExists(mixed $key): bool { return isset($this->data[$key]); }
    public function offsetGet(mixed $key): mixed { return $this->data[$key] ?? null; }
    public function offsetSet(mixed $key, mixed $value): void { $this->data[$key] = $value; }
    public function offsetUnset(mixed $key): void { unset($this->data[$key]); }
}
 
$config = new Config();
$config['size'] = 14;
 
echo $config['theme'], ' ', $config['size'], ' ';
var_dump(isset($config['lang']));

Результат:

light 14 bool(false)

Примечания

Скобки ещё не делают объект массивом: функции array_map(), in_array(), count() его не примут.

См. также

  • ArrayObject — Объект, который ведёт себя как массив.
  • Countable — Интерфейс объектов, которые можно передать в `count()`.
  • isset — Проверяет, что переменная существует и не равна null.

В учебнике

  • Встроенные интерфейсы — Интерфейсы PHP, которые учат объект вести себя как массив — Countable, IteratorAggregate, ArrayAccess, JsonSerializable и Stringable.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.