Maison >développement back-end >tutoriel php >Explication détaillée des exemples de conversion implicite de in_array en PHP

Explication détaillée des exemples de conversion implicite de in_array en PHP

小云云
小云云original
2018-03-09 10:08:051333parcourir

Lors de l'écriture d'une interface aujourd'hui, je dois transmettre un grand nombre de paramètres d'informations de base. Les paramètres sont de deux types : int et string. Pour faciliter la vérification, je prévois de mettre tous les paramètres dans un tableau et. puis utilisez in_array (0, $param) pour déterminer si le paramètre int est 0, puis déterminez séparément si le paramètre string est vide. L'exemple de code est le suivant :


.
      if(in_array(0, $param) || $param['img'] == '') {
        $this->errorCode = 10030;
        $this->errorMessage = '参数不正确';
        return false; 
      }

Il peut être auto-testé. J'ai découvert que si les paramètres corrects sont transmis, une invite indiquant que les paramètres sont incorrects sera renvoyée ! ! !

La raison

Cette situation se produit précisément parce que in_array pose des problèmes. in_array(search,array) équivaut à comparer chaque valeur du tableau avec la comparaison de recherche, puisque. en plus du paramètre int dans mon tableau $param, il existe également un paramètre string, qui équivaut à utiliser string et int pour comparer les règles de conversion implicites de PHP :

Chaîne non numérique et entier. À titre de comparaison, la chaîne est automatiquement convertie en int(0)

L'exemple suivant vérifie notre déclaration :


<?php

  $a = (int)&#39;abc&#39;;
  var_dump($a); //int(0)

  $c = array(0,1,2,3);
  if(in_array(&#39;abc&#39;, $c)) {
    echo &#39;exist&#39;;
  } else {
    echo &#39;not exist&#39;;
  } //exist

Solution

in_array ajoute un troisième paramètre true pour vérifier si le type des données recherchées et la valeur du tableau sont les mêmes, afin que la fonction ne puisse vérifier que si l'élément existe dans le tableau et le type de données Renvoie vrai uniquement lorsqu'il est identique à la valeur donnée

Pour le métier que j'ai présenté ci-dessus, je peux être plus rigoureux et stocker des données de type int dans un tableau, chaîne dans un tableau, et effectuez l'étalonnage des données sur les deux types différents de tableaux respectivement. De cette manière, les problèmes ci-dessus ne se produiront pas

Recommandations associées :

À propos de quelques exemples. de conversion implicite et résumé en JavaScript

Comment utiliser la conversion implicite ? Résumé de l'utilisation de l'exemple de conversion implicite

Explication détaillée de la conversion implicite javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn