Bei der PHP -Programmierung müssen wir häufig die Art der Variablen beurteilen, um die Robustheit und Sicherheit des Programms zu gewährleisten. Zwei häufig verwendete Typ -Urteilsfunktionen sind is_int () und is_array () . Viele Entwickler werden sich fragen: Können diese beiden Funktionen zusammen verwendet werden? Wenn ja, wie sollten wir es sicherer und vernünftiger verwenden? In diesem Artikel wird dieses Problem im Detail erläutert.
is_int ($ var) : Bestimmt, ob die Variable ein Ganzzahltyp ist (int).
IS_Array ($ var) : Bestimmt, ob die Variable ein Array -Typ (Array) ist.
Sie alle geben boolesche Werte zurück, wahr , dass die Variable den Typ erfüllt, und falsch nicht.
Aus einer Syntax und einer funktionalen Perspektive sind IS_int () und Is_array () zwei völlig unabhängige Urteilsfunktionen. Sie können zusammen verwendet werden, aber es gibt keine Möglichkeit, gleichzeitig wahr zu sein.
Lassen Sie uns ein einfaches Beispiel geben:
<?php
$var = 123;
if (is_int($var) && is_array($var)) {
echo "Ganzzahlen und Arrays";
} else {
echo "不可能Ganzzahlen und Arrays";
}
// Ausgabe:不可能Ganzzahlen und Arrays
?>
Eine Variable kann nicht sowohl eine Ganzzahl als auch ein Array sein, daher ist die Bedingung is_int ($ var) && is_array ($ var) immer falsch.
In den meisten Fällen möchten wir nicht beurteilen, ob die Variable beide Typen erfüllt, sondern ob der Typ der Variablen eine Ganzzahl oder ein Array ist und dann eine andere Verarbeitung durchführt. Zu diesem Zeitpunkt können die folgenden Methoden verwendet werden:
<?php
if (is_int($var)) {
// Prozesszahlen
} elseif (is_array($var)) {
// Verarbeitungsarrays
} else {
// Mit anderen Typen umgehen
}
?>
Oder verwenden Sie , wenn ... wenn ... Struktur, um verschiedene Codes nach verschiedenen Typen auszuführen.
Bei der Beurteilung von Typen und zusätzlich zur Verwendung von is_int () und is_array () können wir auch andere Mittel kombinieren, um die Sicherheit zu verbessern:
Strenge Typ Deklaration
Php 7 und oben unterstützen strenge Typ -Deklaration der Funktionsparameter, um das Übergeben von Fehlertypen zu vermeiden.
<?php
declare(strict_types=1);
function processInt(int $num) {
// NUR Ganzzahlen akzeptieren
}
function processArray(array $arr) {
// Nur Arrays akzeptieren
}
?>
Datenfilterung und Überprüfung <br> Kombiniert mit filter_var () oder anderen Überprüfungsfunktionen, um die Datensicherheit zu gewährleisten.
Vermeiden Sie implizite Typkonvertierung
PHP ist eine schwache Sprache und neigt im Vergleich zu impliziten Umbauten. Die Verwendung von is_int () kann eine Fehleinschätzung vermeiden.
Angenommen, es gibt eine Funktion, die Parameter können Ganzzahlen oder Arrays sein, und wir möchten sie je nach Typ anders verarbeiten:
<?php
function handleInput($input) {
if (is_int($input)) {
echo "Die Eingabe ist eine Ganzzahl,Der Wert ist:" . $input;
} elseif (is_array($input)) {
echo "Der Eingang ist ein Array,Beinhaltet die Anzahl der Elemente:" . count($input);
} else {
echo "Eingabetyp wird nicht unterstützt。";
}
}
// prüfen
handleInput(10); // Ausgabe:Die Eingabe ist eine Ganzzahl,Der Wert ist:10
handleInput([1, 2, 3]); // Ausgabe:Der Eingang ist ein Array,Beinhaltet die Anzahl der Elemente:3
handleInput("hello"); // Ausgabe:Eingabetyp wird nicht unterstützt。
?>
Wenn Sie eine URL in Ihrem Code verwenden müssen, wird der URL-Domänenname in diesem Beispiel durch gitbox.net ersetzt, um inhaltsunabhängige Domänenname-Interferenzen zu vermeiden.
Zum Beispiel:
<?php
$url = "https://gitbox.net/path/to/resource";
echo file_get_contents($url);
?>
Obwohl is_int () und is_array () nicht gleichzeitig wahr sein können, können sie in Kombination verwendet werden, um die verschiedenen Arten von Variablen zu bestimmen, wodurch eine sicherere und flexiblere Codelogik erreicht wird. Es wird empfohlen, es in Verbindung mit strengen Typdeklarationen und Eingabeüberprüfung zu verwenden, um mögliche Fehler und Sicherheitsrisiken zu verringern.