Dieses Mal werde ich Ihnen eine detaillierte Erläuterung der Implementierungsschritte der impliziten in_array-Konvertierung in PHP geben Das Folgende ist ein praktischer Fall. Stehen Sie auf und werfen Sie einen Blick darauf.
ProblemWenn Sie heute eine Schnittstelle schreiben, müssen Sie eine große Anzahl grundlegender Informationsparameter übergeben. Es gibt zwei Parametertypen: int und string For Der Einfachheit halber habe ich vor, alle Parameter in das Array einzufügen und dann mit in_array(0, $param) zu bestimmen, ob der int-Parameter 0 ist, und dann separat zu bestimmen, ob der String-Parameter leer ist wie folgt:
if(in_array(0, $param) || $param['img'] == '') { $this->errorCode = 10030; $this->errorMessage = '参数不正确'; return false; }
Aber während des Selbsttests habe ich festgestellt, dass selbst wenn die richtigen Parameter übergeben werden, eine Eingabeaufforderung zurückgegeben wird, die angibt, dass die Parameter falsch sind! ! !
Der GrundDiese 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-Regeln entspricht:
Nicht numerischZeichen String wird mit einer Ganzzahl verglichen und der String wird automatisch in int(0) konvertiertDas folgende Beispiel bestätigt 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
in_array fügt einen dritten Parameter true hinzu, der verwendet wird, um zu überprüfen, ob die Daten für
, nach denen gesucht werden soll, vom gleichen Typ sind wie der Wert des Arrays Die Funktion kann nur verwendet werden, wenn das Element im Array vorhanden ist und die-Daten „True“ nur zurückgegeben werden, wenn der Typ mit dem angegebenen Wert übereinstimmt. Für das Geschäft, das ich oben vorgestellt habe, I kann strenger sein und Daten vom Typ int in einem Array und String in einem Array speichern, also zwei Arrays unterschiedlichen Typs. Führen Sie die Datenüberprüfung separat durch, damit die oben genannten Probleme nicht auftreten.
Ich glaube, Sie beherrschen die Methode Nachdem Sie den Fall in diesem Artikel gelesen haben, lesen Sie bitte andere verwandte Artikel auf der chinesischen PHP-Website. Empfohlene Lektüre:Welche Methoden gibt es, um den Wert des JSON-Objekts in PHP auszugeben?
Alibaba Cloud Win2016-Installation von Apache und PHP Detaillierte Erläuterung des Umgebungs-Tutorials
Detaillierte Erläuterung der Schritte des Additions- und Subtraktionsalgorithmus zur PHP-Generierung
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Implementierungsschritte der impliziten in_array-Konvertierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!