Bei der PHP -Programmierung ist häufig festzustellen, ob eine Zeichenfolge eine Zahl ist. Diese Anforderung ist besonders häufig in Szenarien wie Datenüberprüfung, Verarbeitung von Benutzereingaben, Formularüberprüfung usw. vorhanden. PHP bietet eine sehr praktische integrierte Funktion is_numeric , die schnell feststellen kann, ob eine Variable eine numerische Zeichenfolge ist.
In diesem Artikel wird detailliert eingeführt, wie die IS_Numereric -Funktion und einige praktische Anwendungsbeispiele verwendet werden, um diese Funktion besser zu verstehen und anzuwenden.
is_numeric ist eine Funktion in PHP, die erkennt, ob eine Variable eine numerische oder eine numerische Zeichenfolge ist. Es gibt einen booleschen Wert wahr oder falsch zurück.
Wenn die Variable eine Ganzzahl, eine schwimmende Punktzahl oder eine Zeichenfolge ist, die Zahlen (einschließlich Zeichenfolgen mit Dezimalpunkten, positiven Anzeichen und wissenschaftlicher Notation) besteht, gibt die Funktion wahr .
Ansonsten wird falsch zurückgegeben.
Funktionsdefinition:
bool is_numeric ( mixed $var )
Der Parameter $ var ist die Variable, die Sie erkennen möchten.
Im Folgenden finden Sie einige Code -Beispiele, um die Verwendung von is_numeric zu demonstrieren:
<?php
$values = [
"123",
"12.3",
"-123",
"1e10",
"abc",
"123abc",
"",
" 123 ",
null,
123,
12.3
];
foreach ($values as $value) {
if (is_numeric($value)) {
echo "'$value' ist eine Zahl oder eine Zahlenzeichenfolge\n";
} else {
echo "'$value' Keine numerische Zeichenfolge\n";
}
}
?>
Ausgangsergebnis:
'123' ist eine Zahl oder eine Zahlenzeichenfolge
'12.3' ist eine Zahl oder eine Zahlenzeichenfolge
'-123' ist eine Zahl oder eine Zahlenzeichenfolge
'1e10' ist eine Zahl oder eine Zahlenzeichenfolge
'abc' Keine numerische Zeichenfolge
'123abc' Keine numerische Zeichenfolge
'' Keine numerische Zeichenfolge
' 123 ' Keine numerische Zeichenfolge
'' Keine numerische Zeichenfolge
'123' ist eine Zahl oder eine Zahlenzeichenfolge
'12.3' ist eine Zahl oder eine Zahlenzeichenfolge
Wie aus den Ergebnissen ersichtlich ist, kann IS_Numeric Ganzzahlen, schwimmende Punktzahlen, negative Zahlen und numerische Zeichenfolgen erkennen, die durch wissenschaftliche Notation dargestellt werden, aber keine Zeichenfolgen, die Räume oder Buchstaben enthalten.
<?php
$user_input = "45.67";
if (is_numeric($user_input)) {
echo "Das eingegebene ist eine gesetzliche Nummer";
} else {
echo "Die Eingabe ist keine Zahl,Bitte gehen Sie wieder ein";
}
?>
Unter der Annahme, dass die Parameter aus der URL erhalten werden, müssen Sie feststellen, ob die Parameter Zahlen sind, um illegale Injektion zu verhindern:
<?php
$id = $_GET['id'] ?? '';
if (is_numeric($id)) {
echo "WirksamID: " . intval($id);
} else {
echo "UngültigIDParameter";
}
?>
Beachten Sie, dass die Zahlenzeichenfolge zwar von IS_Numeric bestimmt wird, wenn eine Ganzzahl erforderlich ist, sie jedoch mit intval oder Typumwandlung weiter verarbeitet werden kann.
IS_NUMERIC erkennen Saiten mit positiven und negativen Vorzeichen, Dezimalpunkten und wissenschaftlichen Notation als Zahlen, wie -3,14 und +1E3 , beide kehren true zurück.
Leere Saiten, reine Raumketten und alphanumerische gemischte Saiten geben alle falsch zurück.
Wenn Sie feststellen müssen, ob die Variable eine reine Ganzzahl ist, können Sie CTYPE_DIGIT verwenden, sie unterstützt jedoch nur unsignierte numerische Zeichenfolgen.
Wenn Sie die schwimmenden Punktnummern oder Ganzzahlen beurteilen müssen, können Sie Filter_var und reguläre Ausdrücke kombinieren, um eine strengere Erkennung zu erhalten.
IS_NUMERIC ist eine einfache und effiziente Funktion in PHP, um festzustellen, ob eine Variable eine numerische oder eine numerische Zeichenfolge ist. Es ist geeignet, um die Benutzereingabe oder Variablentypen schnell zu überprüfen, und ist in vielen Szenarien sehr praktisch. Das Verständnis seines Verhaltens und seiner Randsituationen kann dazu beitragen, robusteren Code zu schreiben.
Wenn Sie eine digitale Überprüfung durchführen, wird empfohlen, zuerst IS_Numeric zu verwenden und andere Funktionen wie Intval und FloatVal zu verwenden, um Daten weiter zu verarbeiten.