[PHP]Integer als String schreiben

DerPeter

Gott
1 Juli 2007
63
26
Ich hab heute mit nem Prof. an unserer Uni diskutiert, ob man Ints nich auch in Hochkommata schreiben sollte, also wie Strings. Ich hab davon noch nichts gehalten, weil ich es anders gelernt habe, aber er hat mir einiges erzählt und dann bin ich auch zu dem Schluss gekommen, dass man selbst Integer als Strings schreiben muss.
Beispiel: $zahl = "132";
Das ist einfach sauberer und schneller für den PHP Interpreter.
Dies soll ein Appel an alle PHP-Programmierer sein diesen Stil auch anzunehmen, da er einfach sauberer ist.
 
Hi,

Meiner Meinung nach ist "deine Schreibweise" schlichtweg falsch! :roll:

Zahlen werden ohne Hochkomma geschrieben (
PHP:
$zahl1 = 1234;
).
Das ganze hat auch ein guten Grund, denn PHP weiß dann, dass es sich um eine Zahl handelt.

Mit Sauberkeit hat das nicht zu tun :roll:
 
was hat das mit sauberer zu tun?

ein string braucht für jedes zeichen 1 byte

1byte integer sind 256 - als string wärens 3 byte
eine 10 byte zahl 1208925819614629174706176 - als string 25 byte
(wenn man die zahl als nicht vorzeichenbehaftet ansieht)

- ist also speicherintensiver - n pc kann mit zahlen grundsätzlich schneller und einfacher umgehen als mit strings o_O

also was genau sollen die vorteile sein?!
 
Zuletzt bearbeitet:
ein string braucht für jedes zeichen 1 byte

1byte integer sind 256 - als string wärens 3 byte
10 byte integer 1208925819614629174706176 - als string 25 byte

- ist also speicherintensiver - n pc kann mit zahlen grundsätzlich schneller und einfacher umgehen als mit strings o_O

Wären imo sogar 4 Bytes, da ein terminierendes \0 noch hinten dran hängt.

Wird eine Zahl als String gespeichert, muss PHP sie vorher umwandeln in ne Zahl.

Wird in PHP eine variable als Integer deklariert, arbeitet PHP intern damit auch als Zahl.
D.h. mit einem Speicherzugriff kann PHP eine 32 (64/128 ) [je nach "Deklaration"] Zahl aus dem RAM holen.

Wird eine Varianle als String deklariert und ihr eine Zahl zugewiesen, so kann PHP weiterhin maximal 32 (64/128 ) Bit auf einmal aus dem RAM holen.
Bei angenommenen 32Bit, wären das gerade mal 4 Bytes.
Diese 4 Bytes müssen umgewandelt werden in ihren entsprechenden Code.
Auch hier sind RAM Schreibzugriffe notwendig.

Desweiteren braucht die Umwandlung selber auch Taktzyklen.

Und wenn du jetzt immer noch behaupten willst, dass ein String Integer schneller zu bearbeiten ist, als ein Integer, dann solltest du das Programmieren aufgeben...

Aber ist ja klar, groß dumm her labern, aber keinen Peil von der internen Architektur des PC's :roll::yawn:

ich würde dir empfehlen, meine BiehlCOMP zu saugen, dann kannst du Live erleben, wie lange das Rechenn mit Strings dauert :LOL:


Saug dir meine BiehlCOMP und simulier mal ne Multiplikation von 1000000*1000000.

Und dann schreib mir ne PN, wenn du in ein paar Stunden damit fertig bist :ugly:


Und wer behauptet, dass das dann schneller geht, als wenn PHP direkt ne Zahl vorliegen hat, sollte mal zum Doktor gehen, denn ihm würde dann irgendwie


//EDIT:
Kenn ich gar nicht, hab ich da was verpasst? ]

Eigentlich ned, da swar halt so ein User, der meinte, er müsse mit seiner PC Unkenntniss protzen.

Naja, wie heißt ein alter Bayrischer Spruch:
Denken beim Scheisen, ned nur drücken :LOL: