Maison  >  Article  >  développement back-end  >  La différence entre PHP isset() et empty()

La différence entre PHP isset() et empty()

不言
不言original
2018-05-08 16:34:061615parcourir

Cet article présente principalement la différence entre PHP isset() et empty(). Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer. PHP Lors de la programmation d'une page, j'utilise souvent la fonction de traitement des variables pour déterminer si une valeur de variable à la fin de la page PHP est vide. Au début, j'avais l'habitude d'utiliser la fonction empty(), mais j'ai rencontré quelques problèmes, donc. Je suis passé à la fonction isset(). Plus de problème.

Comme son nom l'indique, empty() détermine si une variable est "vide" et isset() détermine si une variable a été définie. C'est ce qu'on appelle "comme son nom l'indique" qui m'a fait faire quelques détours au début : lorsqu'une valeur de variable est égale à 0, empty() sera aussi vrai (True), donc des accidents vont se produire. Il s'avère que bien que empty() et isset() soient toutes deux des fonctions de traitement de variables, elles sont toutes deux utilisées pour déterminer si la variable a été configurée, mais elles présentent certaines différences :

empty détectera également si la variable est vide ou non. Lorsqu'une valeur de variable est 0, empty() considère que la variable est équivalente à être vide, ce qui équivaut à ne pas être définie. Par exemple, pour détecter la variable $id, lorsque $id=0, utilisez empty() et isset() pour détecter si la variable $id a été configurée, les deux renverront valeurs différentes - — empty() considère qu'il n'y a pas de configuration, isset() peut récupérer la valeur de $id :

 $id=0;
 empty($id)?print "It's empty .":print "It's $id ."; 
  //结果:It's empty .
 print "
";
 !isset($id)?print "It's empty .":print "It's $id .";
  //结果:It's 0 .

Cela signifie que lorsque nous utilisons la fonction de traitement des variables, lorsque la variable peut avoir une valeur de 0, soyez prudent lorsque vous utilisez empty(). Il est plus judicieux de la remplacer par isset à ce moment-là.

Lorsque le paramètre URL tail d'une page php apparaît id=0 (par exemple : test.php?id=0), essayez de comparer :

if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1

Vous pouvez exécuter le code suivant séparément pour détecter l'inférence ci-dessus :

 if(empty($id)) $id=1;
 print $id; // 得到 1
 if(!isset($id)) $id=1;
 print $id; //得到 0

Pour parler de leur connexion, de leurs points communs are empty() et isset() sont toutes des fonctions de traitement de variables. Leur fonction est de déterminer si les variables ont été configurées. C'est précisément en raison de leur grande similitude dans le processus de traitement des variables qu'elles n'ont pas une compréhension suffisante de leur relation. Si vous ne considérez que les deux fonctions empty() et isset() elles-mêmes, cela rendra les gens plus confus. Regardez-le sous un autre angle. Les objets de traitement de empty() et isset() ne sont rien de plus que des variables non définies, 0 et des chaînes vides.

Si la variable est 0, empty() renverra TRUE et isset() renverra TRUE

Si la variable est une chaîne vide, empty() retournera TRUE, isset() retournera TRUE

Si la variable n'est pas définie, empty() retournera TRUE ; Renvoyez TRUE, isset() renverra FLASE ; L'explication de empty() dans le manuel est la suivante :

Description bool vide (var mixte)

Si var est une valeur non vide ou non nulle, empty() renvoie FALSE. En d'autres termes, "", 0, "0", NULL, FALSE, array(), var $var; et les objets sans aucune propriété seront considérés comme vides, et TRUE est renvoyé si var est vide.

L'explication de isset() dans le manuel est la suivante : isset() détecte si une variable est définie

Description bool isset ( Mixed var [, Mixed var [, ...]] )

Renvoie VRAI si var existe, sinon renvoie FAUX.

Si une variable a été libérée en utilisant unset(), elle ne sera plus isset(). Si vous utilisez isset() pour tester une variable définie sur NULL, elle renverra FALSE. Notez également qu'un octet NULL ("

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn