Variablen mit führender Null (Zahlenformat)??
Thomas L
- php
Hallo Forumler,
ich übergebe per GET in der URL so etwas wie bnr=01.
Nun möchte ich die Zahl um eins hoch bzw. runter zählen
($vor = $_GET[bnr]--; $nach = $_GET[bnr]++;).
Leider wird so aus 01-1=0 bzw. 02+1=3.
Allerdings brauche ich es so, dass dabei die vorangestellte Null nicht verloren geht.
Ist so etwas möglich? Kann ich das Zahlenformat vielleicht von vornherein auf 2 oder 3 Stellen festlegen?
Vielen Dank im voraus für Eure aufschlussreichen Antworten und viele Grüße
Thomas L.
Hello,
Parameter werden in PHP immer als Typ String übergeben.
Ob das verbrieft ist und ewig so bleiben wird, weiß ich nicht.
Wenn man nun zu einem numerischen String eins hinzuzählt, wird auch der Typ zu einem Zahlentyp umgewandelt. Du müsstest also nachher wieder einen String draus machen und die führenden Nullen ergänzen.
feststellen, wie lang der übergebene String ist und in $len merken
zum String eins hinzuzählen
wieder ein einen String verwandeln, und die führenden Nullen ergänzen.
$str_zahl = substr(str_repeat('0',$len).$ergebnis,(-$len))
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
feststellen, wie lang der übergebene String ist und in $len merken
zum String eins hinzuzählen
wieder ein einen String verwandeln, und die führenden Nullen ergänzen.
na ja, number_format() und sprintf() hätte PHP da ja auch noch zu bieten.
gruß,
wahsaga
Hello,
feststellen, wie lang der übergebene String ist und in $len merken
zum String eins hinzuzählen
wieder ein einen String verwandeln, und die führenden Nullen ergänzen.na ja, number_format() und sprintf() hätte PHP da ja auch noch zu bieten.
Dagegen ist auch nichts einzuwenden
Trotzdem muss man ja vorher feststellen, ob z.B. 002 oder 0000000002 übertragen wurde, wenn die Qualität der Benutzereingaben für die innere Reaktion berücksichtigt werden soll.
Dass das ganze Verfahren fragwürdig ist, da Benutzereingaben prinzipiell als nicht vertrauenswürdig gelten, lassen wir hier mal (ausnahmsweise) außer Betracht.
Und wenn es ohnehin klar ist, dass auf n Stellen linksseitig aufgefüllt werden muss, dann kann man das ja standartmeeßig[tm] tun
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo
und vielen Dank für Eure Antworten.
Ich habe es jetzt so gelöst:
if (strlen($val)==1) {$val = "0".$val; }
Gruß
Thomas L.
Hi,
Nun möchte ich die Zahl um eins hoch bzw. runter zählen
($vor = $_GET[bnr]--; $nach = $_GET[bnr]++;).
Leider wird so aus 01-1=0 bzw. 02+1=3.
Schon mal folgendes probiert:
<?php echo 010 - 1 ?>
Das Ergebnis mag für Dich überraschend sein, kommt aber daher, daß in PHP Zahlen mit führender 0 als Oktalzahlen behandelt werden.
cu,
Andreas