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