10
votes

PHP: Variable vide ou non défini ou quoi?

Quelle est la différence entre ces quatre relevés PHP?

if (isset($data)) {

if (!empty($data)) {

if ($data != '') {

if ($data) {


0 commentaires

4 Réponses :


22
votes

vérifier le manuel PHP: http://www.php.net/manual /en/types.comparisons.php xxx

Comme vous pouvez le voir, si (! vide ($ x)) est égal à Si ($ x) et si (! is_null ($ x)) est égal à si ($ x)) . Aussi loin que si $ data! = '' ' va, il est true si $ data n'est pas null , '' , false ou 0 (comparaison desserré).


0 commentaires

4
votes

Ils ne sont pas les mêmes.

  1. true si la variable est définie. La variable peut être réglée sur vide et cela serait vrai.

  2. true si la variable est définie et ne correspond pas à la chaîne vide, 0, 0, "0 ', NULL, FALSE, BANDAY. Il n'est clairement pas le même que isset .

  3. si la variable ne correspond pas à une chaîne vide, si la variable n'est pas définie sa chaîne vide.

  4. Si la variable se contracte à true, si la variable n'est pas définie, elle coerce sur False.


0 commentaires

10
votes
if ($data) {  

1 commentaires

Le manuel le met comme ceci: vide () Est-ce le contraire de (booléen) var , sauf qu'aucun avertissement n'est généré lorsque la variable n'est pas définie. Voir aussi Cette réponse .



0
votes

Si (Isset ($ données)) - détermine si une variable est définie (n'a pas parié 'nonset ()' et n'est pas null . .

Si (! vide ($ data)) - est une vérification de type agnostique pour vide si $ données était '', 0, false ou null, il retournerait vrai.

si ($ data! = '') {Ceci est un type de chaîne de sécurité de vérifier si $ données ne sont pas égales à une chaîne vide

Si ($ données) {Ceci est une recherche de vrai ou de faux (AKA: 0 ou 1)


1 commentaires

Si ($ données) {Ceci est une recherche de vrai ou de faux (aka: 0 ou 1) <- pas tout à fait correct. Ce sera vrai si $ données contient quelque chose qui ne résout pas false (essentiellement les mêmes choses que ! Vide ($ données) )