Maison >développement back-end >Problème PHP >La différence entre php isset() et empty()
Lorsque j'utilise PHP pour écrire des programmes de page, j'utilise souvent des fonctions de traitement de 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 je l'ai fait. a trouvé quelques problèmes, utilisez donc la fonction isset() à la place et le problème ne se produit plus.
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 certaines choses vont arriver Accident. (Apprentissage recommandé : Tutoriel vidéo PHP)
Il s'avère que bien que empty() et isset() soient toutes deux des fonctions de traitement de variables, elles sont utilisées pour déterminer si la variable a été configurée, mais ils ont Certaines différences : empty détectera également si la variable est vide ou nulle. 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 des valeurs différentes . - empty() pense que sans configuration, isset() peut obtenir la valeur de $id :
$id=0; empty($id)?print "It's empty .":print "It's $id ."; //结果:It's empty . print "<br>"; !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, être Soyez prudent lorsque vous utilisez empty(), il serait plus sage de le remplacer par isset à ce stade.
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
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!