ulrich hat geschrieben:in c oder c++ würde ich ein feld von 8 characters verwenden, oder ein feld von 2 integers, oder auch eine struktur, die 2 integers enthält.
weiters könnte man den speicherplatz, den ein double (8 byte fließkommawert) liefert, mißbrauchen.
was von den vorgeschlagenen datenstrukturen in php analog und verwendbar zur verfügung steht, entzieht sich leider meiner kenntnis

Ja, in C wärs wirklich schön zu machen
In PHP könnte man sich im Kreis drehen, dort gibt es nämlich keine Datentypen und -strukturen, so wie es sie in C gibt.
Man kann auch keine Variable eines bestimmten Typs definieren.
Wenn man eine Variable benötigt, verwendet man sie einfach. Im Hintergrund führt PHP wie wild implizite Typkonvertierungen durch.
Beispiel: man legt eine Variable an und weist ihr den Int-Wert 10 zu:
$var = 10;
Jetzt ist jemand so kreativ und addiert das Zeichen '1':
$var += '1';
In $var steht dann nicht wie in C 10 + der ASCII-Code von '1', sondern 11.
Von welchem Typ $var dann nun ist, weiß ich nicht. Vielleicht ists noch ein int, vielleicht aber auch inzwischen ein String, in dem "11" steht.
Normalerweise spielt das aber auch keine Rolle in PHP, da die Datentypen sowieso immer implizit hin und her konvertiert werden, wie sie eben gerade benötigt werden.
Ich kann einer Methode, die einen String erwartet eine Gleitkommazahl mitgeben --> es wird daraus implizit ein String; oder man kann einer mathem. Funktion einen String "123.45" mitgeben -> es wird implizit ein float oder double daraus.
Auch interessant ist die Zuweisung von ganzzahligen Zahlen zu einer Variable: Ist die Zahl nämlich "klein", wird die Variable PHP-intern ein Integer. (Integers sind intern 32-bit-Werte). Weise ich aber eine größere Zahl einer Variable zu, sodass ein Buffer-Overflow entsteht, wird die Variable implizit ein double.
Und als User (oder besser gesagt PHP-Code-Eintippser) merkt man absolut nichts von diesen mysteriösen Dingen, die die ganze Zeit im Hintergrund ablaufen.
Will man nichts mit Datentypen zu tun, mag das alles ja praktisch sein - braucht man aber einen bestimmten Typen, der einen Wert in einer bestimmten Form speichert, könnte man fast verzweifeln.
In solchen Fällen muss man dann auf Tricks wie pack() zurückgreifen, wie hier schon jemand geschrieben hat.
Ein anderer Trick, ist die Verwendung von chr(int val). Diese Funktion liefert nämlich zu einem numerischen Wert das dazugehörige ASCII-Zeichen.
PHP-intern sind ASCII-Zeichen mangels nativer UTF8-Unterstützung immer genau 8 Bit groß.
Ruft man zB chr(8 ) auf, bekommt man das entsprechende ASCII-Zeichen zurück - es ist aber genau 1 Byte lang und hat den Bit-Inhalt 0001000
Um einen 32 Bit Wert zu erzeugen, kann man sich auf diesem Weg die 4 einzelnen Bytes generieren lassen, hängt sie zum Schluss zu einem String zusammen, und fertig ist das, was man in anderen Sprachen einfach als unsigend int kennt (oder long)
Ich hoffe ich hab dich jetzt nicht zu sehr verwirrt, aber PHP ist so.