Mein Verständnis ist ...
wenn is_numeric($input) === true
dann entweder
is_float($input) === true
ODER
is_int($input) === true
ODER
$input === 0
ODER
$input
ist eine numerische Zeichenkette (das heißt, sie würde eine der ersten 3 erfüllen, wenn sie nicht in Anführungszeichen eingeschlossen wäre).
Stimmt das? Gibt es andere Unterschiede?
Siehe die PHP-Dokumentation zu is_numeric . Es spricht über alles, was erlaubt ist, und es ist mehr als is_float
und is_int
.
Es ist auch wichtig zu beachten, dass is_int
nur für Dinge vom Typ integer funktioniert, dh Stringdarstellungen sind nicht erlaubt. Dies ist ein häufiges Problem bei der Überprüfung, dass Formulareingabe eine Ganzzahl ist. Sie sollten filter_var
oder etwas aus der Filterfamilie mit dem Filter FILTER_VALIDATE_INT
verwenden. Verwenden Sie für Gleitkommazahlen FILTER_VALIDATE_FLOAT
.
Wenn Sie als Grund für die Suche nach einer Ganzzahl einen Parameter als int validieren möchten, können Sie dies in PHP 7 folgendermaßen tun:
%Vor%PHP 7 hat zwei verschiedene Modi zum Konvertieren in int; diese Antwort erklärt es ein wenig mehr.
Beachten Sie, dass dies wahrscheinlich nicht der Fall ist, wenn Sie den Inhalt eines Formularelements überprüfen. Verwenden Sie dafür die filter_var
Lösung.
Siehe die Dokumentation . Ein numerischer Wert kann sein: