Sobes.tech
Junior — Middle

Welke speciale methode maakt het mogelijk om toegang te krijgen tot een object als een array of verzameling van elementen?

sobes.tech AI

Antwoord van AI

In PHP maakt de speciale methode ArrayAccess het mogelijk dat een object zich gedraagt als een array, dat wil zeggen dat je de elementen kunt benaderen met vierkante haakjes.

Om dit te doen, moet de klasse de interface ArrayAccess implementeren, die vier methoden bevat:

  • offsetExists($offset) — controleert of een element met de sleutel $offset bestaat.
  • offsetGet($offset) — geeft de waarde van het element met de sleutel $offset terug.
  • offsetSet($offset, $value) — stelt de waarde $value in voor de sleutel $offset.
  • offsetUnset($offset) — verwijdert het element met de sleutel $offset.

Voorbeeld:

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']; // toont 'value'

Op deze manier maakt de implementatie van de ArrayAccess-interface het mogelijk om het object te benaderen als een array.