Maison >développement back-end >tutoriel php >Une image pour clarifier la différence entre les fonctions isset et vides

Une image pour clarifier la différence entre les fonctions isset et vides

不言
不言original
2018-07-06 15:50:453992parcourir

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

Parlons brièvement d'isset Quoi. est la différence entre vide et vide ?

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...

Une image pour le clarifier en profondeur

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

Une image pour clarifier la différence entre les fonctions isset et vides

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 !

Réflexions sur l'eau minérale

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

Élève du primaire vide et collège étudiant isset

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 ?

Comparaison détaillée

fonction isset()

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().

Fonction vide()

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().

La différence la plus complète

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 ~

Une image pour clarifier la différence entre les fonctions isset et vides

Une image pour clarifier la différence entre les fonctions isset et vides

Si vous êtes intéressé, vous pouvez continuer à lire, les exemples donnés dans le manuel officiel...

Manuel PHP

Une image pour clarifier la différence entre les fonctions isset et vides

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!

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