Comment utiliser la conversion implicite de in_array

php中世界最好的语言
Libérer: 2023-03-22 08:44:02
original
1555 Les gens l'ont consulté

Cette fois, je vais vous montrer comment utiliser la conversion implicite de in_array, et quelles sont les précautions lors de l'utilisation de la conversion implicite de in_array. Ce qui suit est un cas pratique, jetons un coup d'oeil.

Problème

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

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

Cependant, lors de l'auto-test, j'ai constaté 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 :

Non numérique . La chaîne de caractères est comparée à un entier et la chaîne est automatiquement convertie en int(0)

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

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

La solution

in_array ajoute un troisième paramètre true, qui est utilisé pour vérifier si les données pour rechercher sont du même type que la valeur du tableau de cette manière. , la fonction ne peut être utilisée que lorsque l'élément existe dans le tableau et Le type de donnéesrenvoie vrai uniquement lorsqu'il est identique à la valeur donnée

Pour le métier que j'ai présenté ci-dessus, vous peut être plus rigoureux et stocker des données de type int dans un tableau et une chaîne dans un tableau, deux types différents Les tableaux sont vérifiés séparément, afin que les problèmes ci-dessus ne se produisent pas

Je pense que vous maîtrisez la méthode après avoir lu C'est le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !

Lecture recommandée :

Comment utiliser la fonction récursive de PHP

Explorer les données sur les produits Tmall et Taobao

Implémentation de la réinitialisation du mot de passe Laravel en PHP

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!