ArrayAccess::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetGetGibt den Wert eines Offset-Punkts zurück

Beschreibung

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

Gibt den Wert des angegebenen Offset-Punkts zurück.

Diese Methode wird ausgeführt, wenn geprüft wird, ob ein Offset-Punkt empty() ist.

Parameter-Liste

offset

Der zu untersuchende Offset-Punkt.

Rückgabewerte

Kann Werte aller Typen zurückgeben.

Anmerkungen

Hinweis:

Es ist möglich, dass Implementierungen dieser Methode als Referenz zurückgeben. Somit ist es möglich Array Offsets von Objekten welche mit ArrayAccess überladen wurden indirekt zu modifizieren.

Bei einer direkten Änderung wird der Wert eines Array Offsets komplett ersetzt (beispielsweise $obj[6] = 7). Bei einer indirekten Änderung wird nur ein Teil des Array Offsets geändert ($obj[6][7] = 7) oder das Array Offset einer Variablen per Referenz zugewiesen ($var =& $obj[6]). Auch Inkrementierung mit ++ und Dekrementierung mit -- sind derartig implementiert, dass sie indirekte Änderung erfordern.

Direkte Änderungen führen zu einem Aufruf von ArrayAccess::offsetSet(), wohingegen indirekte Änderungen in einem Aufruf von ArrayAccess::offsetGet() resultieren. In diesem Fall muss die Implementierung von ArrayAccess::offsetGet() in der Lage sein per Referenz zurückzugeben, ansonsten wird ein E_NOTICE Fehler generiert.

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
0
Martin Q
5 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