Hallo Toby, hallo Thomas
Wie kann ich eine formulareingabe überprüfen was es für ein datentype ist? also ich möchte das das formular abbricht wenn die eingabe,kein integer ist.
Formularfelder werden immer als String übertragen. Aus diesem Grunde helfen die is-Funktionen überhaupt nicht, denn die Prüfen auf den tatsächlichen Typ und der Übergabewert ist imm vom Typ string.
is_int(mixed var);
is_double(mixed var);
is_long(mixed var);
Benötigt wird eine Funktion, die einen String daraufhin prüft, ob er eine nummerische Zeichenfolge enthält. Dies erledigt die Funktion is_numeric(). Deren Rückgabewert gibt an, ob der String eine Zahl repräsentiert, erfaßt allerdings auch Fließkomma-Zahlen.
Ob eine String ein Integer ist, läßt sich so prüfen:
if ($var === (string)(int) $var) echo "integer";
else echo "kein integer";
(string)(int) $var wandelt den Wert der Variable in ein Integer um (Dezimalzahlen werden abgeschnitten, Zahlen nur bis zum ersten ungültigen Zeichen interpretiert) und dieses Ergebnis dann wiederum in ein String. Anschließend werden beide Werte verglichen. Sind sie gleich kann es nur ein Integerwert sein.
Viele Grüße
Antje