Junior — Middle
Welche spezielle Methode ermöglicht den Zugriff auf ein Objekt als Array oder Sammlung von Elementen?
sobes.tech KI
Antwort von AI
In PHP ermöglicht die spezielle Methode ArrayAccess, dass ein Objekt sich wie ein Array verhält, also auf seine Elemente mit eckigen Klammern zuzugreifen.
Dazu muss die Klasse die Schnittstelle ArrayAccess implementieren, die vier Methoden enthält:
offsetExists($offset)— prüft, ob ein Element mit dem Schlüssel$offsetexistiert.offsetGet($offset)— gibt den Wert des Elements mit dem Schlüssel$offsetzurück.offsetSet($offset, $value)— setzt den Wert$valuefür den Schlüssel$offset.offsetUnset($offset)— entfernt das Element mit dem Schlüssel$offset.
Beispiel:
class MyCollection implements ArrayAccess {
private $container = [];
public function offsetExists($offset) {
return isset($this->container[$offset]);
}
public function offsetGet($offset) {
return $this->container[$offset] ?? null;
}
public function offsetSet($offset, $value) {
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}
public function offsetUnset($offset) {
unset($this->container[$offset]);
}
}
$obj = new MyCollection();
$obj['key'] = 'value';
echo $obj['key']; // gibt 'value' aus
Auf diese Weise ermöglicht die Implementierung der ArrayAccess-Schnittstelle den Zugriff auf das Objekt wie auf ein Array.