Aktueller Standort: Startseite> Neueste Artikel> Die Stripos -Suche ist fehlgeschlagen und gibt falsch zurück. Wie gehe ich elegant damit um?

Die Stripos -Suche ist fehlgeschlagen und gibt falsch zurück. Wie gehe ich elegant damit um?

M66 2025-05-13

In PHP ist Stripos () eine sehr häufige Funktion, um das erste Auftreten einer String in einer anderen Zeichenfolge unempfindlich zu finden. Wenn gefunden, gibt Stripos () eine Ganzzahl zurück, die die Startposition der Matching -Zeichenfolge in der Zielzeichenfolge angibt. Wenn nicht gefunden, wird Falsch zurückgegeben.

Hier kommt das Problem: Da die Rückgabe " 0 oder falsch " ist, ist es einfach, Fehler im bedingten Urteil zu machen.

Lassen Sie mich Ihnen eine gemeinsame Gefahr geben:

 if (stripos($haystack, $needle)) {
    echo "Gefunden!";
} else {
    echo "Nicht gefunden!";
}

Wenn $ nadel am Anfang von $ haystack (Position 0) liegt, gibt Stripos () 0 zurück, und wenn (0) als falsch behandelt wird, was zu einer "Nicht gefundenen" Ausgabe, logischem Fehler führt!

Die richtige Art zu beurteilen

Um die Situation, in der Stripos () false zurückgibt, anmutig zu bewältigen, sollten wir klar bestimmen, ob es falsch ist, und nicht ein einfaches booleanes Urteil:

 $pos = stripos($haystack, $needle);
if ($pos !== false) {
    echo "Gefunden,In der Lage:$pos";
} else {
    echo "Nicht gefunden!";
}

Durch die Verwendung des kongruenten Vergleichssymbols ! == können wir 0 und false genau unterscheiden.

Ein weiteres Paket: Schreiben Sie eine Gadget -Funktion

Um den Code klarer und wiederverwendbar zu machen, können wir eine Helferfunktion zusammenschließen:

 function containsIgnoreCase($haystack, $needle) {
    return stripos($haystack, $needle) !== false;
}

// Beispiel für die Nutzung
if (containsIgnoreCase("https://m66.net/news", "NEWS")) {
    echo "Schlüsselwörter eingeben!";
} else {
    echo "不Schlüsselwörter eingeben!";
}

Auf diese Weise ist das Schreiben von Code einfach zu lesen und reduziert sich wiederholte Logik, was ihn für die weit verbreitete Verwendung in Projekten sehr geeignet ist.

Praktische Anwendung: Bestimmen Sie, ob die Zugriffsquelle des Benutzers bestimmte Schlüsselwörter enthält

Nehmen wir an, wir müssen feststellen, ob die URL der Benutzerzugriff utm_source enthält: