Probleme und Lösungen bei der Verwendung der in_array-Funktion in PHP

高洛峰
Freigeben: 2023-03-03 21:58:02
Original
1145 Leute haben es durchsucht

Stellen Sie zunächst den Hintergrund der Nachfrage vor:

Rechnungsmethode:

0=Spende (fragen Sie mich nicht warum, historische Gründe)

1=Vergleichsversand

2=Anfrage

3=Elektronische Rechnung

Jetzt müssen wir die vom Benutzer übermittelten Daten überprüfen:

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

Zu diesem Zeitpunkt tritt ein Problem auf, wenn der Wert $_POST['invoice_action'] überhaupt nicht existiert. Warum wird dann keine Ausnahme ausgelöst?

Es wurde bestätigt, dass es sich hierbei um eine Falle handelt von PHP als schwach typisierter Sprache, ja, das ist eine Grube Was sollen wir mit einer so großen Grube tun?

Methode 1: in_array unterstützt den dritten Parameter und erzwingt die Datentyperkennung

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
Nach dem Login kopieren

Methode Zwei: Ändern Sie immer noch in Datentyprichtung die 0 im Array in eine Zeichenfolge

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
Nach dem Login kopieren

Zusammenfassung

Oben geht es um PHP-Probleme und Lösungen, die bei der Verwendung der in_array-Funktion auftreten. Ich hoffe, dass dieser Artikel für Freunde hilfreich sein kann, die ebenfalls auf dieses Problem stoßen. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen.

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
Nach dem Login kopieren

Weitere Artikel zu Problemen und Lösungen bei der Verwendung der in_array-Funktion in PHP finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage