Maison >développement back-end >tutoriel php >Explication détaillée de la différence entre PHP isset() et empty()
Cet article présente principalement la différence entre PHP isset() et empty(). Il a une très bonne valeur de référence, jetons-y un coup d'œil avec l'éditeur ci-dessous
Lorsque j'utilise PHP pour écrire des programmes de page, j'utilise souvent des fonctions de traitement de variables pour déterminer si une certaine valeur variable du paramètre tail de la page PHP est vide. Au début, j'avais l'habitude d'utiliser la fonction empty(), mais j'ai trouvé quelques problèmes, je suis donc passé à la fonction isset() et les problèmes ont disparu.
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!