Heim >Backend-Entwicklung >PHP-Tutorial >Wie verhalten sich die PHP-Funktionen „in_array()' und „array_search()' mit booleschen Werten und dem Parameter „$strict'?
Verstehen des Verhaltens von PHP in_array() und array_search()
Die PHP-Funktionen in_array() und array_search() können unerwartetes Verhalten zeigen, wenn Umgang mit Arrays, die boolesche Werte enthalten. Um diese Inkonsistenzen zu beheben, ist es wichtig, die inhärente Funktionalität dieser Funktionen zu verstehen.
Beide Funktionen verfügen über einen optionalen dritten Parameter, $strict, der standardmäßig FALSE ist. Wenn $strict auf FALSE gesetzt ist, verwenden diese Funktionen einen losen Vergleich (==), um Werte auszuwerten. Dies bedeutet, dass sie nur prüfen, ob die Werte unabhängig von ihrem Typ gleich sind.
Zum Beispiel im bereitgestellten Array:
$arr = [TRUE, "some string", "something else"];
Der Aufruf von in_array("test", $arr) würde Gibt TRUE zurück, auch wenn „test“ nicht im Array vorhanden ist. Dies geschieht, weil TRUE ungefähr gleich „jeder nicht leeren Zeichenfolge“ ist, einschließlich „test“.
In ähnlicher Weise würde array_search("test", $arr) 0 zurückgeben, was darauf hinweist, dass „test“ gefunden wurde Index 0. Dies liegt daran, dass TRUE und „jede nicht leere Zeichenfolge“ standardmäßig als gleich betrachtet werden.
Um genaue Vergleiche zu gewährleisten, ist es notwendig, $strict auf TRUE zu setzen, was erzwingt die Funktionen, die einen strengen Vergleich verwenden (===). Bei einem strengen Vergleich werden sowohl der Wert als auch der Typ der Variablen bewertet. Wenn also $strict auf TRUE gesetzt ist:
in_array("test", $arr, true); // Returns false array_search("test", $arr, true); // Returns -1
Zusammenfassend lässt sich sagen, dass das Standardverhalten von in_array() und array_search() beim Umgang mit booleschen Werten zu unerwarteten Ergebnissen führen kann. Indem Sie den Parameter $strict auf TRUE setzen, können Sie einen strengen Vergleich erzwingen und so sicherstellen, dass die Funktionen sowohl den Wert als auch den Typ der Variablen auswerten, um genaue Ergebnisse zu erzielen.
Das obige ist der detaillierte Inhalt vonWie verhalten sich die PHP-Funktionen „in_array()' und „array_search()' mit booleschen Werten und dem Parameter „$strict'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!