Junior — Middle
Quelle méthode spéciale permet d'accéder à un objet sous forme de tableau ou de collection d'éléments?
sobes.tech IA
Réponse de l'IA
En PHP, une méthode spéciale ArrayAccess permet à un objet de se comporter comme un tableau, c'est-à-dire d'accéder à ses éléments à l'aide de crochets.
Pour cela, la classe doit implémenter l'interface ArrayAccess, qui contient quatre méthodes :
offsetExists($offset)— vérifie si un élément avec la clé$offsetexiste.offsetGet($offset)— retourne la valeur de l'élément avec la clé$offset.offsetSet($offset, $value)— définit la valeur$valuepour la clé$offset.offsetUnset($offset)— supprime l'élément avec la clé$offset.
Exemple :
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']; // affiche 'value'
Ainsi, la mise en œuvre de l'interface ArrayAccess permet d'accéder à l'objet comme à un tableau.