Maison > Article > développement back-end > Pourquoi `$a == NULL` est-il évalué comme vrai alors que `$a` est une chaîne vide en PHP ?
NULL en PHP : lorsqu'une chaîne vide n'est pas nulle
Considérez le code PHP suivant :
<code class="php">$a = ''; if($a == NULL) { echo 'is null'; }</code>
Pourquoi affiche-t-il « est nul » alors que $a est clairement une chaîne vide ? Est-ce un bug ?
Comprendre l'égalité et l'identité
La clé pour comprendre ce comportement réside dans la distinction entre égalité (==) et identité (===) . En PHP, == vérifie si deux opérandes ont la même valeur, tandis que === vérifie s'ils ont la même valeur et le même type.
Dans le code ci-dessus, $a est une chaîne vide, ce qui est un faux valeur. En PHP, les valeurs fausses sont traitées comme égales aux tableaux NULL, false, 0 et vides. Par conséquent, $a == NULL est évalué à true.
Utiliser === pour vérifier NULL
Pour vérifier spécifiquement si une variable est NULL, utilisez l'opérateur d'identité (===):
<code class="php">if($variable === NULL) {...}</code>
Notez le triple signe égal. En utilisant ===, vous vous assurez que la variable est non seulement fausse, mais aussi de type NULL.
Conclusion
La chaîne vide en PHP n'est pas considérée comme NULL . Pour vérifier explicitement NULL, utilisez l'opérateur d'identité (===). Cette distinction est cruciale pour garantir une comparaison et une logique précises dans votre code PHP.
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!