Maison > développement back-end > tutoriel php > Problèmes et solutions lors de l'utilisation de la fonction in_array en PHP

Problèmes et solutions lors de l'utilisation de la fonction in_array en PHP

高洛峰
Libérer: 2023-03-03 21:58:02
original
1172 Les gens l'ont consulté

Présentez d'abord le contexte de la demande :

Mode de facturation :

0=Don (ne me demandez pas pourquoi, raisons historiques)

1=Expédition assortie

2=Demande

3=Facture électronique

Nous devons maintenant vérifier les données soumises par l'utilisateur :

php;auto-links:false;">if(!in_array($_POST['invoice_action'], array(0,1,2,3))){
  throw new Exception('请选择正确的发票方式');
}
Copier après la connexion

Un problème survient à ce moment-là. Si la valeur $_POST['invoice_action'] n'existe pas du tout, pourquoi aucune exception n'est-elle levée ?

Il a été confirmé qu'il s'agit d'un piège. de PHP en tant que langage faiblement typé, oui, c'est un gouffre

Regardez cet ensemble de code :

echo in_array('', array(0)) ? 1 : 0;   // 结果:1
echo in_array(null, array(0)) ? 1 : 0;  // 结果:1
echo in_array(false, array(0)) ? 1 : 0; // 结果:1
Copier après la connexion

. Que devons-nous faire avec une si grande fosse ? Contourner ou remplir ?

Méthode 1 : in_array prend en charge le troisième paramètre, forçant la détection du type de données

echo in_array('', array(0), true) ? 1 : 0;   // 结果:0
echo in_array(null, array(0), true) ? 1 : 0;  // 结果:0
echo in_array(false, array(0), true) ? 1 : 0; // 结果:0
Copier après la connexion

méthode deux : toujours dans le sens du type de données, remplacez le 0 dans le tableau par une chaîne

echo in_array('', array('0'), true) ? 1 : 0;   // 结果:0
echo in_array(null, array('0'), true) ? 1 : 0;  // 结果:0
echo in_array(false, array('0'), true) ? 1 : 0; // 结果:0
Copier après la connexion

Résumé

Ce qui précède concerne les problèmes PHP et les solutions rencontrés lors de l'utilisation de la fonction in_array. J'espère que cet article pourra être utile aux amis qui rencontrent également ce problème. Si vous avez des questions, vous pouvez laisser un message pour communiquer.


Pour plus d'articles liés aux problèmes et aux solutions lors de l'utilisation de la fonction in_array en PHP, veuillez faire attention au site Web chinois de PHP !


É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