Je ne comprends pas la différence entre isset()
et !empty()
.
Parce que si une variable a été définie, n'est-ce pas la même chose que ne pas être vide?
ISSET vérifie si la variable a été définie. En d'autres termes, il vérifie si la variable est une valeur autre que NULL ou qu'aucune valeur ne lui est affectée. ISSET
renvoie TRUE
si la variable existe et a une valeur autre que NULL. Cela signifie que les variables affectées d'un "", 0, "0" ou FAUX sont définies et sont donc TRUE
pour ISSET
.
EMPTY vérifie si une variable est vide. Vide est interprété comme: "" (une chaîne vide), 0 (entier), 0.0 (float) `," 0 "(chaîne), NULL, FALSE, array () (un tableau vide) et" $ var; " (une variable déclarée, mais sans valeur dans une classe.
Pour plus d'informations, voir cet article
Source: http: //php.net/manual/fr/types.comparisons.php Cette page montre la comparaison entre empty()
, is_null()
, isset()
.
Les tableaux de comparaison de types donnent la réponse à toutes les questions concernant ces opérateurs
isset
- Détermine si une variable est définie et n'est pas NULL.
!empty
- Détermine si une variable n'est PAS vide.
Isset renvoie false si la variable n'a pas été définie ou est null et renvoie true si la variable a été définie et non null.
! empty renvoie true si la variable a été définie et non vide. Chaîne vide, tableau vide, "0", 0 et faux sont définis comme vides.
Et encore une remarque. empty()
vérifie si la variable existe également. C'est à dire. si nous effectuons empty()
avec la variable qui n'a pas été déclarée, nous ne recevons pas d'erreur, empty()
renvoie 'true'. Par conséquent, nous pouvons éviter isset()
si nous devons ensuite vérifier si la variable est vide.
Alors
isset($var) && !empty($var)
sera égal à
!empty($var)