Position actuelle: Accueil> Derniers articles> La différence entre IS_BOOL et GetType: pourquoi ne pouvez-vous pas utiliser directement GetType pour juger la valeur booléenne?

La différence entre IS_BOOL et GetType: pourquoi ne pouvez-vous pas utiliser directement GetType pour juger la valeur booléenne?

gitbox 2025-08-26

Dans PHP, IS_BOOL et GetType sont deux fonctions couramment utilisées qui vérifient le type d'une variable. Bien qu'ils puissent tous être utilisés pour gérer la vérification du type, il existe des différences significatives dans leur comportement et leur objectif, en particulier lors de la jugement des valeurs booléennes. Cet article explorera en profondeur la différence entre Is_bool et GetType et expliquera pourquoi vous ne pouvez pas compter uniquement sur GetType pour juger la valeur booléenne.

1. Introduction à la fonction is_bool

IS_BOOL est une fonction spécifiquement utilisée pour déterminer si une variable est une valeur booléenne. Il existe deux valeurs possibles pour les valeurs booléennes: true et false . La valeur de retour de cette fonction est une valeur booléenne, et vrai si le type de la variable est une valeur booléenne, autrement fausse .

Exemple:

 <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">1</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>

Dans cet exemple, IS_BOOL ($ var1) renvoie true car la valeur de $ var1 est un Boolean True . et is_bool ($ var2) renvoie false , même si la valeur de $ var2 est 1 , ce n'est toujours pas une valeur booléenne.

2. Introduction à la fonction GetType

GetType est une fonction qui peut obtenir le type de variable. Il renvoie une chaîne représentant le type de la variable. Contrairement à IS_BOOL , GetType renvoie des descriptions de chaînes de tous types, pas seulement des types booléens.

Exemple:

 <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">1</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// Sortir:boolean</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// Sortir:integer</span></span><span>
</span></span>

Dans l'exemple ci-dessus, GetType ($ var1) renvoie Boolean , indiquant que la variable $ var1 est un booléen. GetType ($ var2) renvoie entier , indiquant que la variable $ var2 est un entier.

3. La différence entre Is_bool et GetType

Bien que ces deux fonctions semblent être utilisées pour vérifier le type de variables, elles ont des différences clés lorsqu'elles sont réellement utilisées:

  • Dédicace : IS_BOOL est uniquement utilisé pour déterminer si une variable est un booléen, et GetType est une fonction de détection de type général qui peut renvoyer tous les types de PHP, notamment booléen , entier , chaîne , etc.

  • Valeur de retour : IS_BOOL Renvoie une valeur booléenne True ou False , tandis que GetType renvoie une chaîne décrivant le type de variable.

  • Type Matching : IS_BOOL ne renverra True que si la variable est strictement booléenne True ou FAUX , tandis que GetType renverra une chaîne booléenne sans distinction entre True et False .

4. Pourquoi ne pouvez-vous pas utiliser GetType pour juger directement la valeur booléenne?

GetType renvoie la chaîne de nom de type de la variable (comme Boolean ), plutôt que de renvoyer directement la valeur booléenne True ou False . Si vous utilisez GetType pour juger un booléen, il classe à la fois vrai et faux comme booléen et ne peut pas les distinguer. Cela signifie que vous ne pouvez pas juger si une valeur booléenne est vraie ou fausse par GetType , et vous ne pouvez juger que si la variable est de type booléen.

Exemple:

 <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-literal">false</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>); </span><span><span class="hljs-comment">// Sortir:boolean</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>); </span><span><span class="hljs-comment">// Sortir:boolean</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>); </span><span><span class="hljs-comment">// Sortir:integer</span></span><span>
</span></span>

Bien que $ var1 et $ var2 soient tous deux des valeurs booléennes, GetType renvoie simplement Boolean et ne peut pas distinguer s'ils sont vrais ou faux . Si vous voulez distinguer clairement le vrai et le faux , vous devez utiliser une manière de jugement plus spécifique.

5. La bonne façon d'utiliser est_bool et getType

Pour déterminer avec précision si une variable est une valeur booléenne, la meilleure façon est d'utiliser IS_BOOL . Si vous devez vérifier le contenu spécifique de la valeur booléenne (c'est-à-dire déterminer s'il est vrai ou faux ), vous pouvez comparer directement les variables.

Exemple:

 <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-literal">false</span></span><span>;

</span><span><span class="hljs-keyword">if</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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"var1 C&#39;est une valeur booléenne\n"</span></span><span>;
}

</span><span><span class="hljs-keyword">if</span></span><span> (</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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"var1 Oui true\n"</span></span><span>;
}

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$var2</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"var2 Oui false\n"</span></span><span>;
}
</span></span>

Dans cet exemple, la première utilisation est_bool pour déterminer si la variable est une valeur booléenne. Ensuite, utilisez l'opérateur de comparaison stricte === pour déterminer s'il est vrai ou faux .

6. Conclusion

IS_BOOL et GetType sont tous deux des outils utiles, mais ils conviennent à différents scénarios. IS_BOOL est spécifiquement utilisé pour déterminer si une variable est une valeur booléenne, et GetType est utilisé pour obtenir des informations de type plus général. Lorsque vous jugez des valeurs booléennes, il est inexact d'utiliser directement GetType car il ne peut pas distribuer les valeurs vraies et fausses . Par conséquent, lorsqu'il est nécessaire de juger le type booléen, il est recommandé d'utiliser IS_BOOL et de le combiner avec une comparaison directe pour déterminer sa valeur spécifique.