Vide ou pas en PHP
En PHP, il existe de nombreuses façons de vérifier qu’une variable soit vide, définie ou non…
Tout d’abord, qu’est ce que c’est le vide ? Quel est la différence avec le null ?
Le but est ici de traiter les différences entres les fonctions et les structures de langage de PHP.
isset($var)
Une structure de langage vérifiant uniquement si la variable est définie.
Pour retourner true sur la variable donnée, il faut que :
– Cette variable SOIT définie, donc qu’elle ait été déclarée dans l’environnement courant.
is_null($var)
Une fonction permettant de vérifier qu’une variable est nulle.
Pour retourner true sur la variable donnée, il faut que :
– $var vaille NULL.
– $var ne soit pas définie, une notice sera alors générée.
empty($var)
Vérifie explicitement que la variable est vide.
Pour retourner true sur la variable donnée, il faut que :
– Cette variable NE soit PAS définie, donc qu’elle n’a pas été déclarée dans l’environnement courant.
– La variable vaille NULL, 0, « 0 », « », array() ou false.
Voici un petit tableau récapitulatif:
Instructions | NULL | Chiffre Zéro | Non définie | Chaîne vide | Chaîne Zéro « 0 » | array() | FALSE |
---|---|---|---|---|---|---|---|
!isset($var) | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE |
empty($var) | TRUE | TRUE | TRUE | TRUE | TRUE | TRUE | TRUE |
is_null($var) | TRUE | FALSE | TRUE* | FALSE | FALSE | FALSE | FALSE |
$var == NULL | TRUE | TRUE | TRUE* | TRUE | FALSE | TRUE | TRUE |
$var == 0 | TRUE | TRUE | TRUE* | TRUE | TRUE | FALSE | TRUE |
*A retourné une notice.