ArrayAccess::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetGetВозвращает заданное смещение (ключ)

Описание

public ArrayAccess::offsetGet(mixed $offset): mixed

Возвращает заданное смещение (ключ).

Данный метод выполняется, когда проверяется смещение (ключ) на пустоту с помощью функции empty().

Список параметров

offset

Смещение (ключ) для возврата.

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

Может возвращать значение любого типа.

Примечания

Замечание:

Возможна реализация данного метода с возвращением по ссылке. Это делает возможным косвенную модификацию для величин массива перегруженного объекта ArrayAccess.

Явная модификация - это такая модификация, при которой полностью заменяется значение величины массива, как в случае $obj[6] = 7. С другой стороны, при косвенной модификации заменяется только часть величины, или происходит попытка присвоения величины по ссылке другой переменной, как в случае $obj[6][7] = 7 или $var =& $obj[6]. Увеличение с использованием оператора ++ и уменьшение с использованием оператора -- также реализуются с помощью способа, который требует косвенную модификацию.

В то время как, явная модификация запускает вызов метода ArrayAccess::offsetSet(), косвенная модификация запускает вызов метода ArrayAccess::offsetGet(). В таком случае, реализация метода ArrayAccess::offsetGet() должна быть в состоянии возвращать результат по ссылке, в противном случае будет вызвано сообщение об ошибке уровня E_NOTICE.

Смотрите также

add a note add a note

User Contributed Notes 1 note

up
0
Martin Q
4 years ago
As of PHP 7, offsetExists($offset) must return a TRUE value in order for offsetGet($offset) to be called, otherwise offsetGet($offset) will just return NULL.  This was not the case in PHP 5, so if your code suddenly stops working upon upgrade to PHP 7, make sure offsetExists() returns sensible values.
To Top