Referenzen sind eine Möglichkeit, Daten zu adressieren während der
Laufzeit. So wie es in anderen Programmiersprachen Pointer oder
indirekte Adressierung gibt, so wird in PHP das Problem über Referenzen
gelöst. Warum sind diese Aspekte so wichtig für einen Programmierer und
warum ist das für Laien nur schwer verständlich. Nehmen wir an, wir
haben eine Datenbank und dort sind alle Namen aller Briefmarken in einem
Sammelalbum eingetragen. Nun gibt es auf dem Weg vom
Briefmarkensammlunggrundstock zur Sammlung immer wieder Briefmarken, die
neu in der Sammlung sind oder Briefmarken, die das Album und damit die
Sammlung verlassen. Wenn wir nun wie der Hobbyprogrammierer es tun
würde, ein Array von 1 bis 50 anlegen, dann hätten wir 50 Speicherplätze
für 50 Briefmarken. Aber das löst nicht die Probleme im Rechner. Denn
wenn 4 Briefmarken weggehen und vier Briefmarken neu in das Sammelalbum
kommen, dann lässt sich das nicht einfach organisieren. Denn würden wir
im Array ein Briefmarke herauslöschen, dann hätten wir eine Lücke im
Feld. Oder wenn 4 Briefmarken weggehen und keine Briefmarke dazukommt,
dann wäre unsere Datei bald löchrig wie ein Schweizer Käse. Deswegen
wird das in allen höheren Programmiersprachen das ganz anders
organisiert und in Assembler wird so ein System sehr aufwendig
simuliert. So wird kein Array anlegt im Speicher vom Rechner sondern
eine Kette. So werden ungefähr folgende Informationen gespeichert.
Anstellen von den Briefmarke 1 bis 50 eine Struktur anzulegen und von 1
bis 50 in das Array zu speichern wird hier eine Art Kette aufgebaut. So
wird abstrakt der PHP Programmierer seinen Speicher für die Sammelalbum
folgendermassen aufbauen:
Startadresse für die erste Briefmarke
Datenstruktur fuer eine Briefmarke:
Zeige Adresse vom Briefmarke alfabetisch nach Dir oder das Endezeichen
Zeige Adresse vom Briefmarke alfabetisch vor Dir oder das Startzeichen
Name vom Briefmarke
alle Daten vom Briefmarke und auch alle Fakten.
Und nun lesen wir aus einer Datei die Daten von den Briefmarken ein und
das PHP Programm wird folgendes tun:
Das erste Briefmarke wird Start der Kette.
Die zweite Briefmarke wird eingelesen. Nun wird die Briefmarke nicht
neben die andere Briefmarke in ein Array gestellt, sondern das Programm
sortiert die Namen der beiden Briefmarken und baut daraus eine Kette.
Und dann wird jede Briefmarke alfabetisch in die Kette einsortiert. Und
die Adressen werden gespeichert mit Variablenhinhalt und Variablenname
und zwar Briefmarke für Briefmarke und immer in die Kette einbauen. Und
wenn alle Briefmarken in das Sammelalbum gespeichert worden sind, dann
ist das Philatelieleben einfach zu organisieren. Wenn nun eine
Briefmarke die Sammelalbum verlässt, dann wird sie einfach aus der Kette
entfernt, die Nachbarbriefmarken verbinden sich und die Kette ist wieder
komplett. Das wird dynamisch genannt, weil nun 3 Briefmarken oder auch
59999 Briefmarken in einer Speichereinheit verwaltet werden können. Denn
der Luxus von dem System ist, gelöschte Briefmarken geben auch immer
Speicherplatz frei, was bei der Speicherung in einem statischen Array
nicht möglich wäre.
Über den Autor