Introduction
PHP Manual
PHP Manual»Interfaces et Classes Prédéfinies»ArrayAccess

L'interface ArrayAccess

(PHP 5, PHP 7, PHP 8)

Interface permettant d'accéder aux objets de la même façon que pour les tableaux.

interface ArrayAccess {
/* Méthodes */
public function offsetExists(mixed $offset): bool
public function offsetGet(mixed $offset): mixed
public function offsetSet(mixed $offset, mixed $value): void
public function offsetUnset(mixed $offset): void
}

Exemple #1 Exemple basique

<?php
class Obj implements ArrayAccess {
    public $container = [
        "un"    => 1,
        "deux"  => 2,
        "trois" => 3,
    ];

    public function offsetSet($offset, $value): void {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset): bool {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset): void {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset): mixed {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new Obj;

var_dump(isset($obj["deux"]));
var_dump($obj["deux"]);
unset($obj["deux"]);
var_dump(isset($obj["deux"]));
$obj["deux"] = "Une valeur";
var_dump($obj["deux"]);
$obj[] = 'Ajout 1';
$obj[] = 'Ajout 2';
$obj[] = 'Ajout 3';
print_r($obj);

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
int(2)
bool(false)
string(10) "Une valeur"
Obj Object
(
    [container] => Array
        (
            [un] => 1
            [trois] => 3
            [deux] => Une valeur
            [0] => Ajout 1
            [1] => Ajout 2
            [2] => Ajout 3
        )

)

Sommaire

To Top