Heim > Backend-Entwicklung > PHP-Tutorial > Warum geben PHPs „in_array()' und „array_search()' manchmal unerwartete Ergebnisse zurück?

Warum geben PHPs „in_array()' und „array_search()' manchmal unerwartete Ergebnisse zurück?

Susan Sarandon
Freigeben: 2024-12-10 22:49:12
Original
387 Leute haben es durchsucht

Why Does PHP's `in_array()` and `array_search()` Sometimes Return Unexpected Results?

Eigenartiges Verhalten von PHP in_array() und array_search(): Eintauchen in die optionalen Parameter

Bei der Verwendung von PHP in_array() kann es vorkommen, dass Sie auf Folgendes stoßen unerwartetes Verhalten bei der Suche nach nicht vorhandenen Elementen. Dieser Artikel untersucht diese Kuriosität und untersucht die Lösung durch die Einführung des obskuren $strict-Parameters.

Stellen Sie sich ein Array wie $arr = [TRUE, „some string“, „something else“] vor. Bei der Suche nach „test“ mit in_array() wird überraschenderweise TRUE zurückgegeben. In ähnlicher Weise ruft array_search() einen „ungenauen“ Index von 0 ab. Dieses Verhalten erscheint zunächst rätselhaft, was zu der Annahme führt, dass TRUE automatisch ein universelles positives Ergebnis auslöst.

Dies ist jedoch kein Fehler, sondern eine absichtliche Funktion . Sowohl in_array() als auch array_search() verfügen über einen oft übersehenen dritten Parameter, $strict, der den Vergleichsmodus bestimmt. Sein Standardwert FALSE ermöglicht einen losen (==) Vergleich, wobei Typunterschiede ignoriert werden.

Folglich wird im Fall von $arr TRUE == „jede nicht leere Zeichenfolge“ als TRUE ausgewertet. Indem Sie $strict auf TRUE setzen, weisen Sie PHP an, einen strengen (===) Vergleich durchzuführen und dabei sowohl Wert- als auch Typgleichheit zu überprüfen.

Dieses Wissen bringt Klarheit in das verwirrende Verhalten. Durch einen strengen Vergleich können Sie Fehlinterpretationen vermeiden und genaue Suchergebnisse sicherstellen. Weitere Einblicke in den Gleichheits- und Identitätsvergleich in PHP finden Sie in der bereitgestellten Referenz.

Das obige ist der detaillierte Inhalt vonWarum geben PHPs „in_array()' und „array_search()' manchmal unerwartete Ergebnisse zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage