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

小云云
Libérer: 2023-03-20 22:48:02
original
1305 Les gens l'ont consulté

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; 
      }
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!