Hi,
Bei der Verarbeitung einer Formulareingabe mit der Funktion var_dump(); sehe ich, dass die eingetragene Zahl 2 nicht als Zahl, sondern als String verarbeitet wird.
Natürlich - die Übertragung der Daten erfolgt als reiner Text, und darin gibt es keine „Datentypen“.
Sehe ich das also richtig?
intval(); bei einem String, in dem ein oder mehrere Buchstaben oder Sonderzeichen vorkommen liefert die ganze Zahl 0 (als Integer Typ).
var_dump(intval('57foo6bar'));
intval(); bei einem String, der nur aus einer ganzen Zahl besteht, liefert diese Zahl als Integer Typ.
Sofern sie in Integer „rein passt“, ja. Andernfalls bekommst du den Wert von PHP_INT_MAX.
intval(); bei einem String, der aus einer Kommazahl besteht, liefert den Wert _vor_ dem Komma als ganze Zahl (als Integer Typ)?
Analog zum ersten Fall.
Und meine 2. Frage:
Welche Funktion nehme ich, wenn ich für eine Weiterverarbeitung die Umwandlung eines Strings in einen Zahlenwert mit Komma erreichen möchte? Also dass aus "Hans" ein 0 wird, aus 2 ein 2 und aus 2,5 ein 2,5.
Sowas willst du gar nicht zur Weiterverarbeitung im Script haben - weil nicht das Komma, sondern der Punkt als Dezimaltrennzeichen verwendet wird.
Du willst also das Komma durch einen Punkt ersetzen, bevor du floatval darauf anwendest. (Und dir noch über die Behandlung von Sonderfällen bzw. Fehleingaben durch den Nutzer Gedanken machen.)
MfG ChrisB
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?