PHP Rechnen mit vorangestellten Nullen

Überkinger

Lieutenant
Registriert
Juli 2010
Beiträge
600
Hallo,

ich habe eine Zahl mit vorangestellten Nullen die jeweils um 1 hochgezählt wird. Jetzt habe ich das Problem, dass ich mit vorangestellten Zahlen rechne. Die Zahl mit vorangestellten Nullen kommt später in die Datenbank und wird von dort wieder zum Weiterzählen verwendet.

PHP:
$zahl = 008;
$zahl++;

Ergebnis ist 01.

PHP:
$zahl = 008;
$zahl+1;

Ergebnis ist 00. Ich verstehe nicht was da passiert.
 
In php sind Zahlen mit vorangestellter Null s.g. Oktalzahlen. Oktalzahlen gehen aber nur von 0 -7, deswegen macht php aus 08 u. 09 einfach eine 0.

mfg Jojo
 
008 ist keine Zahl und wir denke ich als String interpretiert. So sollte es gehen:

$zahl_aus_db = '008';
$zahl_als_int = (int)$zahl_aus_db;
$zahl_als_int++;


greeTz
waYan
 
Alles klar. Vielen Dank Euch! Ich schreibe die Zahlen nun ohne vorangestellte Nullen und füge diese erst bei der Verwendung zu.

$zahl = str_pad($zahl,3,"00",STR_PAD_LEFT);
 
Ich würde davon abraten, das zwischen PHP und der Datenbank zu machen, besser wäre es überall mit einem richtigem dezimalen Integer zu arbeiten, in PHP und der Datenbank.

Du kannst die Nullen immer noch bei der Ausgabe hinzufügen.
 
luky37 schrieb:
Ich würde davon abraten, das zwischen PHP und der Datenbank zu machen, besser wäre es überall mit einem richtigem dezimalen Integer zu arbeiten, in PHP und der Datenbank.

Du kannst die Nullen immer noch bei der Ausgabe hinzufügen.

Genau so mache ich das nun. Erst in der Ausgabe füge ich die vorangestellten hinzu.PHP und DB lasse ich mit normalzahlen rechnen.
 
Zurück
Oben