Maison >développement back-end >tutoriel php >Une image pour clarifier la différence entre les fonctions isset et vides
Cet article présente principalement la différence entre les fonctions isset et vides avec une image. 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
Si vous êtes en entretien et que l'intervieweur pose cette question. Vous pouvez répondre comme ceci :
Si la valeur de la variable est 0, une chaîne vide, un tableau vide, etc., vide pense qu'il est vide, tandis que isset pense qu'il n'est pas vide .
Si la variable n'existe pas, isset et empty la considèrent comme vide.
Il est recommandé d'utiliser la fonction isset pour éviter les pièges lors de l'utilisation à vide.
Si vous souhaitez connaître les différences plus détaillées entre eux, veuillez continuer à lire...
J'ai dessiné une image en utilisant ProcessOn
Remarque :
Pour faciliter la comparaison, la fonction vide est inversée ici . Notez que
!empty()
"", 0, "0", FALSE, array()... Cette condition n'est pas remplie, vous pouvez la tester vous-même
Si vous avez l'air confus, veuillez ignorer cette section pour l'instant
C'est le résultat renvoyé lorsque isset vide correspond à différentes variables. Les différences entre les deux sont résumées dans cette image.
La performance de isset
dans la case verte en pointillés, et la performance de !empty
dans la case jaune en pointillés. On peut voir que vide doit juger plus de conditions qu'il n'est défini pour déterminer le résultat de retour.
Si vous ne comprenez pas quelque chose ou si vous ne vous souvenez pas de tous les détails. Laissez-moi vous dire comment tout retenir de cette photo !
Imaginez qu'il y a maintenant une bouteille d'eau minérale sur la table. La bouteille peut avoir ces 4 conditions :
Bouteille d'eau : Il y a de l'eau dans la bouteille
Bouteille d'air : L'eau est fini, la bouteille Il n'y a que de l'air à l'intérieur
Bouteille sous vide : La bouteille a été prise et aspirée, mais il n'y avait rien à l'intérieur
Il y avait pas de bouteille sur la table
Analogiser les variables aux bouteilles d'eau minérale, correspondant à 4 états :
Valeur générale : L'unité de stockage contient des valeurs générales
Valeur de l'air : les variables sont "", 0, "0", FALSE, array()...
Valeur du vide : la variable est NULL
La variable n'existe pas ou n'est pas définie
Supposons que nous puissions utiliser isset vide La fonction doit déterminer si une bouteille d'eau minérale est vide. Elle aura ce résultat :
Si c'est un air. bouteille, alors vide pense qu'elle est vide (elle a l'air vide) !), mais isset pense qu'elle n'est pas vide (elle a de l'air !)
Si c'est une bouteille sous vide, alors un isset vide pensera qu'il est vide
Si c'est une bouteille d'eau, alors un isset vide pensera qu'il n'est pas vide
Cela peut être vu que vide, c'est un élève du primaire qui ne comprend pas les sciences, pensant que la bouteille a l'air vide. C'est une bouteille vide ! Effectivement, il est encore trop jeune~Et isset est un collégien qui a étudié la physique et comprend le concept de "vide" - il sait qu'il y a encore de l'air dans la bouteille !
Ainsi, dans la première des trois situations ci-dessus, le conducteur vétéran Isset a une riche expérience et est arrivé à une conclusion différente de celle de l'élève du primaire vide.
Maintenant nous pouvons savoir que si nous utilisons ces deux fonctions pour juger des variables, le résultat sera comme ceci :
S'il s'agit d'un air value ( " ", 0, "0", FALSE, array()...), alors vide pense qu'il est vide, et isset pense qu'il n'est pas vide
S'il s'agit d'une valeur de vide (NULL), alors l'isset vide le considère comme vide
S'il s'agit d'une valeur générale (sauf pour ces deux cas, c'est-à-dire Il y a de l'eau dans la bouteille), alors l'isset vide pense qu'il n'est pas vide
C'est la réponse à l'entretien donnée au début. Maintenant, est-ce facile à comprendre ?
Format : bool isset ( Mixed var [, Mixed var [, ...]] )
Fonction : Vérifiez si la variable est définie
Valeur de retour :
Si la variable n'existe pas, renvoyez FALSE
Si la variable existe et que sa valeur est NULL, renvoyez également FALSE
Si la variable existe et la valeur Si elle n'est pas NULL, retournez TRUE
Lors de la vérification de plusieurs variables en même temps, TRUE ne sera renvoyé que lorsque chaque élément répond à l'exigence précédente, sinon le résultat sera FALSE
Plus d'instructions :
Utiliser unset() Après avoir libéré la variable, elle ne sera plus isset().
La fonction PHP isset() ne peut être utilisée que pour les variables . La transmission de tout autre paramètre entraînera une erreur d'analyse.
Pour détecter si une constante a été définie, utilisez la fonction définie().
Format : bool vide (var mixte)
Fonction : Vérifier si une variable est vide
Valeur de retour :
Si la variable n'existe pas, renvoie VRAI
Si la variable existe et sa valeur est "", 0 , "0 ", NULL, FALSE, array(), var $var et les objets sans aucun attribut, renvoient TURE
Si la variable existe et que la valeur n'est pas "", 0, "0", NULL, FALSE, array (), var $var et les objets sans aucun attribut, renvoient FALSE
Plus d'explications :
La valeur de retour de empty()=!(boolean) var, mais aucun message d'avertissement ne sera généré car la variable n'est pas défini. Voir Conversion en booléen pour plus d'informations.
empty() ne peut être utilisé que pour les variables La transmission de tout autre paramètre provoquera une erreur Paser et mettra fin à l'opération.
Pour vérifier si une constante a été définie, utilisez la fonction définie().
Maintenant, nous rassemblons l'eau minérale et les variables et dessinons le diagramme de différence le plus complet :
Si vous pouvez comprendre le contenu précédent, vous comprendrez parfaitement ces deux images, et la différence entre isset vide sera gravée dans votre esprit. Si quelqu'un vous pose encore des questions sur la différence entre les deux, jetez immédiatement cette photo ~
Si vous êtes intéressé, vous pouvez continuer à lire, les exemples donnés dans le manuel officiel...
C'est un Zhang qui montrera la différence entre un isset vide if($var). Dans le tableau, nous pouvons trouver :
la valeur de retour d'isset() est égale à is_null. ()
La valeur de retour de empty() est équivalente à !boolean($x). if($x) convertit d'abord la variable en type booléen, puis effectue un jugement conditionnel
Si $var n'existe pas, l'instruction if($x) provoquera une exception de niveau E_NOTICE en PHP, mais ce n'est pas une erreur fatale. Le script peut toujours être exécuté ;empty($x) et isset($x) ne signalera aucune exception
Ce qui précède. C'est tout le contenu de cet article, j'espère qu'il sera utile à tout le monde. Apprendre est utile. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
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!