Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der impliziten Konvertierungsbeispiele von in_array in PHP
Wenn ich heute eine Schnittstelle schreibe, muss ich eine große Anzahl grundlegender Informationsparameter übergeben. Die Parameter sind von zwei Typen: int und string. Zur Vereinfachung der Überprüfung habe ich vor, alle Parameter in ein Array einzufügen Bestimmen Sie dann mit in_array (0, $param), ob der int-Parameter 0 ist, und bestimmen Sie dann separat, ob der Zeichenfolgenparameter leer ist. Der Beispielcode lautet wie folgt:
if(in_array(0, $param) || $param['img'] == '') { $this->errorCode = 10030; $this->errorMessage = '参数不正确'; return false; }
Es ist ein Selbsttest. Ich habe festgestellt, dass bei der Übergabe der richtigen Parameter eine Eingabeaufforderung zurückgegeben wird, die darauf hinweist, dass die Parameter falsch sind! ! !
Der Grund
Diese Situation tritt genau deshalb auf, weil in_array Probleme verursacht. in_array(search,array) entspricht dem Vergleich jedes Werts im Array mit search Zusätzlich zum int-Parameter in meinem $param-Array gibt es auch einen String-Parameter, der der Verwendung von string und int zum Vergleichen impliziter PHP-Konvertierungsregeln entspricht:
Nicht-numerische Zeichenfolge und Ganzzahl Zum Vergleich wird der String automatisch in int(0) konvertiert
Das folgende Beispiel verifiziert unsere Aussage:
<?php $a = (int)'abc'; var_dump($a); //int(0) $c = array(0,1,2,3); if(in_array('abc', $c)) { echo 'exist'; } else { echo 'not exist'; } //exist
Lösung
in_array fügt einen dritten Parameter true hinzu, um zu prüfen, ob der Typ der gesuchten Daten und der Wert des Arrays identisch sind, sodass die Funktion nur prüfen kann, ob das Element in existiert Das Array und der Datentyp geben nur dann „true“ zurück, wenn es mit dem angegebenen Wert übereinstimmt
Für das Geschäft, das ich oben vorgestellt habe, kann ich strenger vorgehen und Daten vom Typ „int“ in einem Array und „string“ in einem Array speichern. und führen Sie die Datenkalibrierung jeweils für die beiden verschiedenen Arten von Arrays durch. Auf diese Weise treten die oben genannten Probleme nicht auf
Verwandte Empfehlungen:
Über einige Beispiele der impliziten Konvertierung und Zusammenfassung in JavaScript
Detaillierte Erläuterung der impliziten Konvertierung von Javascript
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der impliziten Konvertierungsbeispiele von in_array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!