(PHP 4, PHP 5)
isset — Détermine si une variable est définie et est différente de NULL
Détermine si une variable est définie et est différente de NULL
.
Si une variable a été détruite avec la fonction
unset(), la fonction isset() renverra
FALSE
. isset() renvera FALSE
lors du test d'une
variable de valeur NULL
. Notez aussi que le caractère nul
("\0") n'est pas équivalent à la constante PHP
Si plusieurs paramètres sont fournis, alors la fonction
isset() retournera TRUE
seulement si tous les paramètres
sont définis. L'évaluation s'effectue de gauche vers la droite et s'arrête
dès qu'une variable non-définie est rencontrée.
var
La variable à analyser.
...
Une autre variable...
Retourne TRUE
si var
existe et a une valeur
autre que NULL
, FALSE
sinon.
Version | Description |
---|---|
5.4.0 |
La vérification de positions non-numériques
d'une chaîne retourne maintenant |
Exemple #1 Exemple avec isset()
<?php
$var = '';
// Ceci est vrai, alors le texte est affiché
if (isset($var)) {
echo 'Cette variable existe, donc je peux l\'afficher.';
}
// Dans les exemples suivants, nous utilisons var_dump() pour afficher
// le retour de la fonction isset().
$a = 'test';
$b = 'anothertest';
var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUE
unset ($a);
var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE
$foo = NULL;
var_dump(isset($foo)); // FALSE
?>
Fonctionne aussi avec les tableaux :
<?php
$a = array ('test' => 1, 'bonjour' => NULL, 'pie' => array('a' => 'apple'));
var_dump(isset($a['test'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_dump(isset($a['bonjour'])); // FALSE
// La clé 'bonjour' vaut NULL et est considérée comme non existante
// Si vous voulez vérifier l'existence de cette clé, utilisez cette fonction
var_dump(array_key_exists('bonjour', $a) ); // TRUE
// Vérification des valeurs en profondeur
var_dump(isset($a['pie']['a'])); // TRUE
var_dump(isset($a['pie']['b'])); // FALSE
var_dump(isset($a['cake']['a']['b'])); // FALSE
?>
Exemple #2 isset() sur des positions dans une chaîne
PHP 5.4 modifie le comportement de la fonction isset() lorsqu'on lui passe des positions dans une chaîne.
<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>
Résultat de l'exemple ci-dessus en PHP 5.3 :
bool(true) bool(true) bool(true) bool(true) bool(true) bool(true)
Résultat de l'exemple ci-dessus en PHP 5.4 :
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)
isset() fonctionne uniquement avec des variables car l'utilisation de toute autre chose aura comme conséquence une erreur d'analyse. Pour vérifier si une constants est définie, utilisez la fonction defined().
Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables.
Note:
Lors de l'utilisation de cette fonction sur des propriétés d'objet inaccessibles, la méthode magique __isset() sera appelée, si elle existe.