I love PHP – 2. Variablen
- Kateogrie: PHP, Webentwicklung
- 28.11.2010
- Kommentare: 2
Im letzten Artikel haben wir die Grundlagen für das Programmieren von PHP-Skripten gelegt und unser erstes kleines PHP-Skript geschrieben. Jetzt können wir durchstarten und anfangen richtig zu programmieren. Heute lernen wir das wichtigste Element einer Programmiersprache kennen: Variablen. Dieses Element ist grundlegend für jede Programmiersprache, d.h. wer diese beherrscht, beherrscht diese semantisch und logisch auch in anderen Programmiersprachen.
Wir sind VARiabel
Um mit Informationen zu arbeiten, sie darzustellen oder mit ihnen zu rechnen brauchen wir Variablen. Es sind Platzhalter für Informationen die einen Namen besitzen. Eine Variable ist im PHP immer mit einem Dollarzeichen $ gekennzeichnet. Um einer Variablen einen Wert zuzuweisen, nutzen wir das Gleichheitszeichen. Wie jeden Befehl in PHP müssen die Variablenzuweisung mit einem Semikolon beenden.
$zahl = 23; // das ist ein Kommentar
Wie auch in Mathe können diese unterschiedliche Werte aufnehmen, immer wieder verändert werden oder auch unbekannt sein. In PHP gibt Variablen unterschiedlichster Art. In unserem Beispiel nimmt die Variable mit dem namen zahl den Zahlenwert 23 an (nebenbei schreibe ich immer wieder Kommentare in den Quellcode, die über Doppelslash eingeleitet werden und nur über eine Zeile gehen). Ganzzahlwerte werden dabei mit Integer bezeichnet. PHP besitzt den Vorteil, dass man den Variablentyp nicht explizit angeben muss, sondern dieser sich automatisch nach dem Wert richtet.
1 2 3 4 5 | $ganzzahl = 12; // Integer $gleitkommazahl = 12.3; // Float $wahrheitswert = true // Boolean $nichts; $zeichenkette = 'Ich bin eine Zeichenkette'; // String |
Ich denke Integer und Float sind selbsterklärend. Boolean (Zeile 3) ist ein besonderer Datentyp der nur zwei unterschiedliche Werte annehmen kann: true und false (also wahr oder falsch). Auch mit Integer-Variablen lassen sich Wahrheitswerte ausdrücken. Diese entsprechen dann 0 für false und alles andere für true.
Wie ich bereits sagte, bestimmen die Werte den Variablentyp. Es ist aber auch möglich Variablen ohne einen Wert zu erstellen (zu initiieren). Doch welcher Typ ist diese Variable dann? Dieser Typ nennt sich NULL und besitzt den Wert NULL. Null ist gleichbedeutend mit einer nicht existenden Variable.
Der Variablentyp String (Zeile 4) eigentlich auch selbsterklärend, hat aber eine kleine Besonderheit: Zeichenketten können sowohl mit einfachen Anführungszeichen, also auch mit doppelten Anführungszeichen markiert werden. Grund dafür ist zum einen, dass z.B. HTML-Attribute auch mit Anführungszeichen markiert sind und diese sonst zu einem ungewollten Abbruch des Strings führen können. Zum anderen werden, wenn der String in doppelten Anführungszeichen ist, Variablen innerhalb des String automatisch ersetzt. Das ganze sieht dann so aus:
1 2 3 | $auto = 'Seat Ibiza'; $zeichenkette = "Das ist mein $auto"; // Das ist mein Seat Ibiza $zeichenkette2 = 'Das ist mein <span class="markup">$auto</span>'; // In diesem String wird die Variable $auto nicht ersetzt |
Nun haben wir einfache Variablen kennengelernt. Wenn man aber verschiedene Variablen in einer Gruppe haben möchte, führt kein Weg an sogenannten Arrays (Feldvariablen) vorbei. Ein Array ist eine Aufzählung von Variablen und sieht so aus:
1 2 3 | $meinArray = array(); $meinArray['text'] = 'ich bin ein String'; $meinArray['zahl'] = 23; |
Es werden sozusagen verschiedene Variablen in eine einzige geschrieben, die über einen eindeutigen Index angesprochen werden können. Arrays können in sich beliebig oft verschachtelt werden, was es möglich macht komplexe Strukturen darzustellen. Hier ein Beispiel:
1 2 3 4 5 | $auto = array(); $auto['seat'] = array(); $auto['seat']['hersteller_seit'] = 1800; $auto['opel'] = array(); $auto['opel']['marke1'] = 'insignia'; |
Jetzt kann man nicht unbedingt davon ausgehen, dass man den Index eines Arrays kennt, d.h. man möchte z.B. eine einfache Liste von Werten.
1 | $auto = array('opel', 'seat', 'ford', 'vw'); |
Bei diesem Array braucht man nicht direkt einen Index anzugeben. Wie kann man nun aber auf ein einzelnes Element des Arrays zugreifen? Beim Erstellen des Arrays wurde jedem Element ein Index zugewiesen. Dieser richtet sich nach der Reihenfolge der Elemente:
1 2 3 | echo($auto[0]); // opel echo($auto[1]); // seat echo($auto[2]); // ford |
Dieses Vorgehen wird dann wichtig, wenn wir Arrays mit Schleifen oder dynamisch verarbeiten. Dazu wird es aber einen Extra-Artikel geben.
Variablen-Arbeit
Damit man mit Variablen nicht nur Daten speichern, sondern auch mit ihnen arbeiten kann, gibt es zahlreiche Operationen und Funktionen. Bei Integer und Float können wir ohne probleme mathematische Funktionen anwenden.
$zahl = 12 + 12; // Addition $zahl = 3*11; // Multiplikation $zahl = 15 / 5 // Division
Neben den klassischen mathematischen Operationen gibt es auch noch zwei weitere:
1 2 3 | $zahl = 3; $zahl++; // Inkrement … $zahl = $zahl + 1; $zahl--; // Dekrement … $zahl = $zahl – 1; |
Inkrement und Dekrement sind eigentlich nur Kurzschreibweisen für die in Kommentar befindlichen Variablen-Wertzuweisungen.
Jetzt wissen wir wie man mit Zahlen in PHP rechnet, nur wie kann man mit Zeichenketten rechnen? Zeichenketten lassen sich zumindestens mal addieren, also aneinanderreihen.
1 2 3 4 5 6 | $haus = 'Mein Haus'; $klein = ' ist klein'; $kleinesHaus = $haus . $klein; $kleinerHof = 'Mein Hof' . $klein; $grossesHaus = $haus . ' ist groß'; $kleinesFeinesHaus = 'Mein Haus' . "$klein aber fein." // Mein Haus ist klein aber fein. |
Um zwei Strings bzw. String-Variablen zu verketten wird der Punktoperator verwendet. Dieser ermöglicht beliebig oft Zeichenketten aneinanderzuhängen und funktioniert sogar, wenn man unterschiedliche Anführungszeichen verwendet. Auch hier funktioniert natürlich wieder das automatische Ersetzen von Variablen in doppelten Anführungszeichen.
Jetzt haben wir wiedermal eine Menge gelernt. Im nächste Artikel wird es um Kontrollstrukturen und Schleifen gehen. Bis dahin noch viel Spaß beim programmieren.




hier kann man noch was lehrnen
Dag nabbit good stuff you wihppersnaepprs!