is_numeric() vs. is_float() vs. is_int()
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 Zeichenfolge (D. H. es würde genügen einen der ersten 3, wenn es sich nicht eingewickelt in Anführungszeichen).
Ist das genau? Gibt es noch andere Unterschiede?
- Lesen Sie diese Tabelle-Inhalt : php.net/manual/en/language.types.php vielleicht ist dies, was Sie suchen..
- Ich denke, ich war sehr verwirrt über das, was floats sind. Ich nehme es, dass alles, was ein float ist auch numerische, aber nicht das Gegenteil.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Siehe die Dokumentation von PHP auf is_numeric. Er spricht über alles, was möglich ist, und es ist mehr als
is_float
undis_int
.Es ist auch wichtig zu beachten, dass
is_int
funktioniert nur auf Dinge, die sind von Typ integer, d.h. die string-Darstellungen sind nicht erlaubt. Dies ist ein häufiges problem bei der überprüfung, dass die Formular-Eingabe ist eine ganze Zahl. Sollten Sie verwendenfilter_var
oder etwas aus der filter-Familie mit dem filterFILTER_VALIDATE_INT
. Für Schwimmer, verwenden SieFILTER_VALIDATE_FLOAT
.Auch, wenn der Grund, warum Sie versuchen, zu überprüfen, ob eine ganze Zahl ist die Validierung eines Parameters als int, dann in PHP 7 Sie können dies tun:
PHP 7 hat zwei verschiedene Modi, die für die Konvertierung nach int; diese Antwort erklärt ein bisschen mehr.
Beachten Sie, dass dies ist wahrscheinlich nicht das, was Sie wollen, wenn Sie beim überprüfen den Inhalt eines Formular-Elements. Verwenden Sie die
filter_var
Lösung dafür.filter_var
$n = (int)$i
Sehen die docs. Ein numerischer Wert kann sein: