Maison > Article > développement back-end > Pourquoi PHP signale-t-il une chaîne vide comme NULL lors de l'utilisation de l'opérateur == ?
Pourquoi PHP signale-t-il NULL pour les chaînes vides ?
En PHP, l'utilisation de l'opérateur == à des fins de comparaison peut conduire à des résultats inattendus lors du traitement avec des valeurs vides.
Considérez le code suivant :
<code class="php">$a = ''; if($a == NULL) { echo 'is null'; }</code>
Étonnamment, ce code affichera "est nul" bien que $a soit une chaîne vide.
La raison
L'opérateur == effectue une coercition de type et compare des valeurs de différents types. Dans ce cas, $a (une chaîne vide) est converti en son équivalent booléen, ce qui est faux. false est considéré comme équivalent à NULL en PHP lors de l'utilisation de ==.
La solution
Pour comparer avec précision NULL, utilisez l'opérateur d'égalité stricte === au lieu de = =.
<code class="php">if($a === NULL) { echo 'is null'; }</code>
L'opérateur === effectue des comparaisons de type sécurisé et ne retournera vrai que si les valeurs sont identiques en valeur et en type.
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!