ArrayAccess::offsetExists
(PHP 5 >= 5.0.0)
ArrayAccess::offsetExists — Indique si une position existe dans un tableau
Description
Indique si une position existe.
Cette méthode est exécutée lorsque la fonction isset() ou empty() est appliquée à un objet qui implémente l'interface ArrayAccess.
Note:
Lors de l'utilisation de empty(), ArrayAccess::offsetGet() est appelé et vérifie si la valeur est vide, uniquement si ArrayAccess::offsetExists() retourne
TRUE
.
Liste de paramètres
-
offset
-
Une position à vérifier.
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Note:
La valeur retournée sera transtypée en booléen si une valeur non booléenne est retournée.
Exemples
Exemple #1 Exemple avec ArrayAccess::offsetExists()
<?php class obj implements arrayaccess { public function offsetSet($offset, $value) { var_dump(__METHOD__); } public function offsetExists($var) { var_dump(__METHOD__); if ($var == "foobar") { return true; } return false; } public function offsetUnset($var) { var_dump(__METHOD__); } public function offsetGet($var) { var_dump(__METHOD__); return "value"; } } $obj = new obj; echo "Exécute obj::offsetExists()\n"; var_dump(isset($obj["foobar"])); echo "\nExécute obj::offsetExists() et obj::offsetGet()\n"; var_dump(empty($obj["foobar"])); echo "\nExécute obj::offsetExists(), *et non pas* obj:offsetGet() car il n'y a rien à lire\n"; var_dump(empty($obj["foobaz"])); ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Exécute obj::offsetExists() string(17) "obj::offsetExists" bool(true) Exécute obj::offsetExists() et obj::offsetGet() string(17) "obj::offsetExists" string(14) "obj::offsetGet" bool(false) Exécute obj::offsetExists(), *et non pas* obj:offsetGet() car il n'y a rien à lire string(17) "obj::offsetExists" bool(true)