web-dev-qa-db-fra.com

Quelle est la différence entre 'isset ()' et '! Empty ()' en PHP?

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?

27
Vitalynx

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

41
Nambi

Source: http: //php.net/manual/fr/types.comparisons.php Cette page montre la comparaison entre empty(), is_null(), isset().

 The picture showing complete comparison here

12
Black Mamba

Les tableaux de comparaison de types donnent la réponse à toutes les questions concernant ces opérateurs

http://php.net/manual/en/types.comparisons.php

4
Prashant16

isset - Détermine si une variable est définie et n'est pas NULL.

!empty - Détermine si une variable n'est PAS vide.

0
user3102083

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.

0
joy

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)
0
Andrey P.