Heim >Backend-Entwicklung >PHP-Tutorial >Warum schlägt die Überprüfung von „strpos()' mit „!== false' für Zeichenfolgen fehl, die bei Position Null beginnen?

Warum schlägt die Überprüfung von „strpos()' mit „!== false' für Zeichenfolgen fehl, die bei Position Null beginnen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-16 10:42:12351Durchsuche

Why Does Checking `strpos()` with `!== false` Fail for Strings Starting at Position Zero?

Eine lose Überprüfung des Rückgabewerts von strpos() führt zu unbeabsichtigten Ergebnissen

Beim Versuch, Zeichenfolgenvorkommen innerhalb einer anderen Zeichenfolge zu lokalisieren, kann es bei der Verwendung zu Unstimmigkeiten kommen die Funktion strpos(). Das beabsichtigte Verhalten, zu prüfen, ob zwei Zeichenfolgen vorhanden sind und mit !== false sicherzustellen, dass die erste vor der zweiten steht, kann zu unerwarteten Ergebnissen führen.

Wie im PHP-Handbuch angegeben, gibt strpos() false zurück, wenn keine Zeichenfolge vorhanden ist gefunden. Wenn eine Zeichenfolge jedoch an Position Null beginnt (was zu einem strpos()-Rückgabewert von 0 führt), kann die Anweisung strpos($grafik['data'], $ss1) !== false als falsch ausgewertet werden.

Um dies zu beheben, ersetzen Sie !== false durch === 0 in Ihrem Code. Diese Änderung stellt sicher, dass die Anweisung als wahr ausgewertet wird, wenn strpos() 0 zurückgibt, was anzeigt, dass die Zeichenfolge am Anfang der angegebenen Zeichenfolge vorhanden ist.

Das obige ist der detaillierte Inhalt vonWarum schlägt die Überprüfung von „strpos()' mit „!== false' für Zeichenfolgen fehl, die bei Position Null beginnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn