Position actuelle: Accueil> Derniers articles> Pourquoi le comportement de valeur de retour de IS_BOOL est-il différent de celui de IS_NULL?

Pourquoi le comportement de valeur de retour de IS_BOOL est-il différent de celui de IS_NULL?

gitbox 2025-06-24

1. Fonction is_bool

La fonction is_bool est utilisée pour vérifier si une variable est une valeur booléenne. Les valeurs booléennes ont généralement deux valeurs: vrai ou faux , qui sont utilisés en PHP pour les opérations logiques et les jugements conditionnels. La valeur de retour de la fonction is_bool est une valeur booléenne. Si le type de la variable est booléen, la fonction renvoie true , sinon il renvoie false .

Exemple de code:

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-string">"true"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// Sortir: 1 (true)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// Sortir: nul (false)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>); </span><span><span class="hljs-comment">// Sortir: nul (false)</span></span><span>
</span></span>

Dans le code ci-dessus, $ var1 est un type booléen, donc is_bool ($ var1) renvoie true . Alors que $ var2 est un type entier, Is_bool ($ var2) renvoie false , même si sa valeur est 0 ( faux en php peut également être 0 ). De même, $ var3 est un type de chaîne, et bien qu'il contient une chaîne "vraie", IS_BOOL ($ var3) renvoie toujours FAUX car son type n'est pas un type booléen.

2. Fonction is_null

La fonction is_null est utilisée pour vérifier si la variable est nul . Null est un type spécial qui signifie que la variable n'a aucune valeur. Il est différent des chaînes fausses , 0 ou vides, donc la fonction is_null ne renvoie que si la valeur de la variable est nul , sinon il renvoie false .

Exemple de code:

 <span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// Sortir: 1 (true)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// Sortir: nul (false)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>); </span><span><span class="hljs-comment">// Sortir: nul (false)</span></span><span>
</span></span>

Dans le code ci-dessus, la valeur de $ var1 est nul , donc is_null ($ var1) renvoie true . Alors que $ var2 est l'intégralité 0 , is_null ($ var2) renvoie false , même si 0 signifie généralement faux dans un jugement logique. De même, la chaîne vide "" n'est pas considérée comme nul , donc is_null ($ var3) renvoie false .

3. Différences en matière de comportement de valeur

En comparant l'utilisation de IS_BOOL et IS_NULL , nous pouvons voir quelques différences clés dans leur comportement de valeur de retour.

  • Les types de valeur de retour sont différents:
    La valeur de retour d' Is_bool est toujours de type booléen, c'est-à-dire vrai ou faux . Il renvoie faux même si la variable en cours de vérification n'est pas un type booléen. Et IS_NULL renvoie également une valeur booléenne, mais elle ne renvoie que si la variable est nul , sinon il renvoie false .

  • Différents types de chèques:
    IS_BOOL vérifie si le type de la variable est une valeur booléenne, tandis que IS_NULL vérifie si la valeur de la variable est nul . Cela signifie que c'est_bool ne se soucie que si la variable est une valeur booléenne et ne se soucie pas du contenu spécifique de la variable; Bien que IS_NULL ne se soucie que de savoir si la valeur de la variable est nul même s'il s'agit d'une valeur booléenne ou d'un autre type.

  • Différences sémantiques:
    IS_BOOL se concentre davantage sur les valeurs booléennes logiques ( true ou false ), tandis que IS_NULL se concentre davantage sur le fait que la variable soit "vide" (sans aucune valeur). Bien que ces deux fonctions soient utilisées pour juger l'état des variables, leurs critères de jugement sont différents.

4. Pourquoi y a-t-il une telle différence?

PHP, en tant que langage dactylographié, permet de convertir différents types de valeurs les uns aux autres. Bien que 0 et false soient interchangeables dans de nombreux cas, en PHP, False est une valeur particulière du type booléen, et Null est un type qui indique que la variable n'est pas définie ou n'a aucune valeur.

  • IS_BOOL est spécifiquement utilisé pour déterminer si une valeur est une valeur booléenne, et les valeurs booléennes ont leur propre sémantique unique en PHP.

  • IS_NULL doit vérifier si une variable est nul , ce qui n'a rien à voir avec la question de savoir si sa valeur est un booléen.

Cette différence de conception permet aux développeurs de contrôler plus précisément le jugement des types de variables lors de leur utilisation, en évitant les erreurs ou la confusion causées par des types lâches.

5. Résumé

  • IS_BOOL est utilisé pour vérifier si une variable est de type booléen, et la valeur de retour n'est que vraie ou fausse .

  • IS_NULL est utilisé pour vérifier si une variable est nul et la valeur de retour n'est que vraie ou fausse .

  • Leurs valeurs de retour se comportent différemment, principalement parce qu'ils vérifient différents objets et types. IS_BOOL se concentre sur la question de savoir si la variable est de type booléen, tandis que IS_NULL se concentre sur la question de savoir si la variable est nul .

Comprendre ces différences peut aider à mieux comprendre le système de type PHP et aider les développeurs à écrire du code plus précis.