Sobes.tech
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 $offset existiert.
  • offsetGet($offset) — gibt den Wert des Elements mit dem Schlüssel $offset zurück.
  • offsetSet($offset, $value) — setzt den Wert $value fü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.