Position actuelle: Accueil> Derniers articles> Comment déterminer correctement si la valeur de retour de Stripos est fausse?

Comment déterminer correctement si la valeur de retour de Stripos est fausse?

M66 2025-05-13

Dans PHP, la fonction stripos () est utilisée pour trouver où une chaîne apparaît d'abord dans une autre chaîne (cas insensible). Cette fonction est souvent utilisée lors du traitement de la logique liée à la chaîne, telles que déterminer si un mot-clé existe dans un contenu donné.

Cependant, en raison de la caractéristique de la valeur de retour de StripOS () , de nombreux développeurs sont sujets à trébucher lors de la mise en Juge, en particulier pour le traitement de la valeur de retour de 0 . Cet article analysera ce problème en détail et donnera une manière de jugement correcte.

1. Utilisation de base de la fonction stripos ()

 $haystack = "Welcome to m66.net!";
$needle = "welcome";

$pos = stripos($haystack, $needle);

Dans l'exemple ci-dessus, StripOs () retournera 0 car "Welcome" apparaît au début de la chaîne cible (bien que le cas soit différent, StripOs () est insensible à la casse).

2. Misonnés communs: Utiliser si directement pour juger

De nombreux débutants écrivent de cette façon:

 if (stripos($haystack, $needle)) {
    echo "J'ai trouvé le mot-clé";
} else {
    echo "Les mots clés n'existent pas";
}

Le problème avec ce code est que si le mot-clé apparaît au début de la chaîne (la position est 0), si le jugement traite 0 comme faux et que la branche ELSE est incorrectement exécutée .

3. Voie de jugement correct: tout est égal à False

 $pos = stripos($haystack, $needle);
if ($pos !== false) {
    echo "J'ai trouvé le mot-clé,L'emplacement est:$pos";
} else {
    echo "Les mots clés n'existent pas";
}

L'utilisation de la méthode d'écriture qui est égale à ( ! == false ) peut distinguer avec précision si la fonction renvoie 0 ou false , évitant ainsi les erreurs logiques.

4. Exemples de scénarios d'application

Par exemple, nous voulons détecter si les commentaires soumis par un utilisateur contiennent certains mots sensibles et nous rappeler: