Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die implizite Konvertierung von in_array

So verwenden Sie die implizite Konvertierung von in_array

php中世界最好的语言
php中世界最好的语言Original
2018-03-24 15:57:581504Durchsuche

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!

Stellungnahme:
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