Dieses Mal zeige ich Ihnen, wie Sie die implizite Konvertierung von in_array verwenden und welche Vorsichtsmaßnahmen bei der Verwendung der impliziten Konvertierung von in_array gelten. Das Folgende ist ein praktischer Fall: Werfen wir einen Blick darauf.
Problem
Wenn 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; }
Während des Selbsttests habe ich jedoch festgestellt, dass selbst wenn die richtigen Parameter übergeben werden, 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-Regeln entspricht:
Nicht numerisch Zeichen String wird mit einer Ganzzahl verglichen und der String wird automatisch in int(0) konvertiert
Das 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
Lösung
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 Der Datentypnur dann „true“ zurückgibt, wenn er mit dem angegebenen Wert übereinstimmt
Für das Geschäft, das ich oben vorgestellt habe, Sie kann strenger sein und Daten vom Typ int in einem Array und String in einem Array speichern, zwei verschiedene Typen. Die Arrays werden separat überprüft, sodass die oben genannten Probleme nicht auftreten
Ich glaube, Sie haben die Methode nach dem Lesen beherrscht Der Fall in diesem Artikel finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.
Empfohlene Lektüre:
So verwenden Sie die rekursive Funktion von PHP
Crawling-Daten zu Tmall- und Taobao-Produkten
Implementierung des Laravel-Passwort-Resets in PHP
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die implizite Konvertierung von in_array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!