NULL inattendu de PHP : lorsque les chaînes vides sont trompeuses
En PHP, lorsque l'on compare une variable à NULL à l'aide de l'opérateur d'égalité ==, c'est crucial pour comprendre le comportement subtil qui peut ne pas correspondre aux attentes typiques. Ceci est particulièrement pertinent lorsqu'il s'agit de chaînes vides.
Considérez le code suivant :
<code class="php">$a = ''; if ($a == NULL) { echo 'is null'; }</code>
Étonnamment, cet extrait de code affichera "is null", ce qui peut sembler contre-intuitif à quelqu'un habitué à le concept de chaînes vides étant distinct de NULL dans la plupart des langages de programmation.
La raison de ce comportement réside dans le fait que PHP considère NULL comme équivalent non seulement aux autres valeurs NULL, mais aussi aux chaînes fausses, 0, vides et tableaux vides lors de l'utilisation de l'opérateur ==. Cela signifie que la condition $a == NULL est évaluée à true même si $a est une chaîne vide plutôt qu'une valeur NULL explicite.
Pour résoudre ce problème et vérifier avec précision NULL spécifiquement, vous devez utiliser l'opérateur de comparaison stricte ===. Ce code modifié serait correctement évalué à false, évitant ainsi la sortie inattendue « is null » :
<code class="php">if ($a === NULL) { echo 'is null'; }</code>
Par conséquent, lorsque l'on cherche à déterminer si une variable est égale à NULL en PHP, l'utilisation de l'opérateur === est cruciale. Cette distinction garantit la précision de vos comparaisons et évite toute surprise inattendue afin que les chaînes vides ne se fassent plus passer pour NULL.
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!