Maison > développement back-end > tutoriel php > Pourquoi `strpos() !== true` ne parvient-il pas à détecter la présence de chaîne en PHP ?

Pourquoi `strpos() !== true` ne parvient-il pas à détecter la présence de chaîne en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-24 09:59:34
original
165 Les gens l'ont consulté

Why Does `strpos() !== true` Fail to Detect String Presence in PHP?

Comprendre les comparaisons numériques dans strpos()

Lorsque vous effectuez des comparaisons d'égalité stricte à l'aide de la fonction strpos() en PHP, vous pouvez rencontrer des résultats inattendus . Cet article examine pourquoi comparer strpos() avec true peut conduire au résultat opposé attendu.

Dans le code fourni, l'instruction if compare le résultat de strpos($link, $unacceptable) avec true. Cependant, cette comparaison ne parvient pas à atteindre son objectif prévu, à savoir détecter la présence d'une chaîne indésirable dans $link.

Pour comprendre pourquoi cela se produit, nous devons nous référer à la documentation strpos(). Selon la documentation, strpos() renvoie la position numérique de la première occurrence de la chaîne recherchée dans la chaîne sujet. Cependant, si aucune occurrence n'est trouvée, elle renvoie false.

Dans l'extrait de code, l'instruction if vérifie si strpos() renvoie true. Puisque strpos() renvoie un nombre (0 ou plus) lorsqu'une correspondance est trouvée et false lorsqu'il n'y a pas de correspondance, l'instruction sera toujours évaluée à false si une correspondance est trouvée. En effet, true est considéré comme un nombre invalide dans une comparaison d'égalité stricte.

Pour résoudre ce problème, nous devons remplacer l'opérateur de comparaison par !== false, qui vérifie si le résultat de strpos() n'est pas false (c'est-à-dire qu'il a trouvé une correspondance) :

// ...
if (strpos($link, $unacceptable) !== false) {
    echo 'Unacceptable Found<br />';
} else {
    echo 'Acceptable!<br />';
}
// ...
Copier après la connexion

En utilisant cette comparaison, le code identifiera correctement quand l'une des chaînes inacceptables est présente dans la variable $link et affichera le message approprié message.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal