PHP Variablen: Anwendung, Datentypen, Konventionen
Alles wichtige über PHP Variablen: Wie man sie anlegt, einfache Rechen-Operationen, Ausgabe mit echo, Datentypen und Namens-Konventionen.Tags: PHP lernen | Programmieren lernen | Variablen | Web-Development lernen | Webseiten erstellen lernenWorum geht´s?
In diesem PHP Tutorial lernen wir die Grundlagen im Umgang mit Variablen in PHP. Wie wir in PHP Variablen erstellen, ihnen Werte zuweisen, welche Datentypen es gibt und warum sie relevant für dich und dein Programm sind.
1. Was ist eine Variable in PHP?
Um zu verstehen, wie Variablen in PHP funktionieren, erinnere dich am besten an deine Schulzeit und den Mathematik-Unterricht zurück.
1.1 Variablen in der Schule
Eine Variable in PHP ist in etwa vergleichbar mit den Variablen, die du vermutlich noch aus der Schule kennen wirst:
x = 2
y = x – 1
In den beiden mathematischen Anweisungen oben legen wir als ersten Schritt fest, dass in der Variable mit dem Namen x der Wert 2 gespeichert werden soll.
In einem zweiten Schritt legen wir eine weitere Variable y an, in der das Ergebnis der Rechnung x – 1 gespeichert werden soll.
Da wir für die Variable x auch 2 einsetzen können, erhalten wir die Rechnung 2 – 1, mit dem Ergebnis 1.
Diese Ergebnis von 1 wird also jetzt in der Variable y gespeichert. Die Variable y wird somit zu 1.
Das Grundprinzip dahinter ist dir vermutlich noch aus der Schule bekannt.
1.2 Unterschiede zu Variablen in PHP
Wollen wir nun etwas ähnliches in PHP umsetzen, sieht das Ganze sehr ähnlich aus:
<?php $x = 1; $y = 2 - $x; echo "Ergebnis: ".$y; ?>
Im Vergleich zu vorher haben wir zwei wichtige Unterschiede:
- Alle Variablen haben ein Dollarzeichen ($) vor ihrem Namen stehen
- Nach jeder Anweisung findet sich ein Strichpunkt am Ende
Falls du dich fragst, warum zwischen dem „Ergebnis: “ und dem $y ein Punkt (.) zu finden ist: Damit kannst du Textbausteine mit anderen Textbausteinen oder Variablen verbinden. Der Fachbegriff dafür heißt auch „concatination“ oder kurz „concat“. In diesem Fall wird also z.B. der Wert der Variable $y (nämlich 1) an den Text „Ergebnis: “ drangehängt.
Allerdings gibt es noch einen Unterschied – nur fällt der nicht auf den ersten Blick auf: PHP arbeitet (intern) auch mit sogenannten Datentypen.
1.3 Datentypen von PHP Variablen
Bisher haben wir in unsere PHP Variablen nur ganzzahlige Zahlen wie z.B. 1 oder 2 eingefügt, also Zahlen ohne Komma.
Was aber, wenn wir aber z.B. eine Kommazahl in unseren PHP Variablen speichern wollen, oder einen Text?
Auch das geht in PHP sehr einfach.
Anders als in anderen Programmiersprachen wie z.B. Java müssen wir beim Speichern (zumindest vermeintlich) nicht auf sogenannte Datentypen achten.
Wir können also derselben PHP Variable zum Beispiel eine ganzzahlige Zahl, eine Kommazahl oder auch einen Text zuweisen:
$x = 1; $y = 2 - $x; $x = 3.75; $y = "Dies ist ein wunderbarer Text!"; echo "Ergebnis: ".$y;
Eine PHP Variable kann also nicht nur verschiedene Werte innerhalb des gleichen Datentyps haben, sondern sogar zwischen Datentypen wechseln, also z.B. anfangs eine ganzzahlige Zahl sein und dann ein Text.
1.3.1 Warum es auch Nachteile haben kann, wenn Variablen in PHP keine fixen Datentypen haben (bzw. zu haben scheinen)
Bevor diejenigen die schonmal Java oder ähnliche Sprachen programmiert haben jetzt allzu sehr feiern, hier die schlechte Nachricht:
Das bedeutet auch, dass du viel mehr aufpassen musst, was du mit deinen PHP Variablen jetzt anstellst.
Wenn du beispielsweise das Ergebnis einer Rechnung ausgeben willst und einer der zu addierenden Variablen ist versehentlich ein Textbaustein geworden, hast du womöglich ein Problem.
Stell dir z.B. vor, du bist eine Bank mit Bankkonten der Kunden. Eine Überweisung kommt rein, und der Betrag soll auf das Konto überwiesen werden. Wenn du dich jetzt als Programmierer vertan hast, kann es sein, dass statt dem Überweisungsbetrag z.B. der Verwendungszweck mit dem bisherigen Kontostand „addiert“ wird. Das schaut schonmal ziemlich blöd aus.
Jetzt stell dir noch vor, aus diesem neuen Kontostand (der einen Text enthält, eben den Verwendungszweck) soll nun ein Durchschnittswert errechnet werden.
Ich vermute, du kannst dir vorstellen, dass das Probleme bereiten wird.
Und nun die womöglich überraschende Info: PHP Variablen haben tatsächlich Datentypen. Man sieht sie nur weniger als in andere Programmiersprachen.
1.3.2 PHP Variablen haben Datentypen
Wenn du eine beliebe PHP Variable zwischen die beiden Klammern des Befehls var_dump() packst, wird dir nicht nur der Wert der Variable angezeigt, sondern auch ihr Datentyp:
$x = 1; var_dump($x);
Diese beiden Code-Zeilen werden dir z.B. „int(1)“ anzeigen – eben eine Variable vom Typ „int“ (ganzzahlige Zahl) mit dem Wert von 1.
Je nachdem, welche Werte du einer PHP-Variable zuweist, bekommt sie auch jeweils automatisch den jeweilig passenden Datentypen zugewiesen.
1.3.3 Welche Datentypen können PHP Variablen haben?
Im Großen und Ganzen können PHP Variablen grob diese Datentypen haben:
- int: ganzzahlige Zahl, z.B. eben 3 oder -59
- float: Kommazahl, z.B. eben 4.00 oder -0.22991
- string: Worte, Texte, …, z.B. „Linz“ oder auch „Hier wohnt der Hund Bello“
- boolean: wird vor allem für Entscheidungen in IF-Anweisungen und Schleifen verwendet, kann nur 2 Werte haben: true bzw. false
- array: eine Art „Box“, in der mehrere Variablen in einer einzigen PHP Variable Platz finden
- object: kommt aus der objekt-orientierten Programmierung, ist hier schwer zu erklären
- NULL: nichts, unbesetzt, gelöscht – Standardwert für noch nicht gesetzte Variablen
Für den Anfang am meisten relevant sind:
- int
- float
- string
- boolean
Immer wenn du dir nicht sicher bist, welchen Datentyp deine Variable hat, kannst du den Datentyp wie oben mit var_dump() herausfinden.
2. PHP Variablen anlegen und mit echo ausgeben
Wollen wir nun z.B. einen Satz ausgeben, der mit 2 Variablen funktioniert (1x ein Name und 1x ein Alter), so könnten wir das folgendermaßen tun:
<?php $alter = 33; $name = "Ferdinand"; echo $name." ist ".$alter." Jahre alt."; ?>
Änderst du einer der Variablen, ändert sich auch der ausgegebene Satz.
Variablen und den restlichen Text in unserem echo verbinden wir wieder mit dem Punkt (.) in eine einzige Textausgabe.
Weil wir in der Textausgabe ja sowohl Variablen wie auch HTML-Tags einbauen können, ist z.B. auch folgendes möglich:
<?php $alter = 33; $name = "Ferdinand"; $link = "ferdinand.jpg"; echo $name." ist ".$alter." Jahre alt."; echo "<a href='".$link."' width='".$alter."'>Bild von ".$name."</a>"; ?>
Je nachdem was in der Variable $link steht, wird nun ein anderes Bild angezeigt. Außerdem ändert sich die Bildgröße mit dem Alter, das in der Variable $alter eingestellt ist, mit.
3. Rechnen mit PHP Variablen
Sofern es sich bei unseren PHP Variablen um Zahlen handelt (int oder float), können wir mit ihnen auch rechnen.
Das Ergebnis der Rechnung können wir entweder mit dem Befehl echo ausgeben oder wieder in eine Variable speichern.
3.1 Aus der Schule bekanntes Rechnen mit Variablen
Dabei gelten die aus der Schule bekannten Rechen-Regeln:
<?php $x = 5; $y = 3; $z = $x + $y; // Ergebnis: 8 $z = $x - $y; // Ergebnis: 2 $z = $x * $y; // Ergebnis: 15 $z = $x / $y; // Ergebnis: 1.6666 (Achtung: $z wird zu float!!) ?>
3.2 Zusätzliche Möglichkeiten, mit PHP Variablen zu rechnen
Neben den aus der Schule bekannten Rechenoperationen gibt es in PHP (wie in fast allen Programmiersprachen) noch einige weitere, nicht so bekanntere Möglichkeiten:
$z = $x % $y; // Ergebnis: 2 (Rest der ganzzahligen Division) $x = $x + 1; // $x wird von 5 zu 6 $x += 1; // $x wird von 6 zu 7 $x++; // $x wird von 7 zu 8
Die erste Zeile mit dem %-Zeichen heißt auch „modulo“-Operator (kurz „mod“) und steht für eine „Volksschul-Division“, das heißt es wird alles nach dem Komma „abgeschnitten“ (anders ausgedrückt: abgerundet). Diesen braucht man z.B., um herauszufinden, ob es sich bei einer Zahl um eine gerade oder eine ungerade Zahl handelt.
Die drei nächsten Befehle erhöhen jeweils die Variable $x dauerhaft um 1. Es sind 3 Varianten, den selben Befehl zu schreiben. Weil die beiden letzteren aber weniger Schreibaufwand bedeuten, werden sie gerne genutzt.
Die ersten beiden Varianten sind theoretisch mit jeder Zahl möglich (nicht nur 1) und auch z.B. mit einem Minus-Zeichen (-) oder einem Mal-Zeichen (*).
Die letzte Variante gibt es nur mit ++ oder –.
3.3 Klammerregeln beim Rechnen mit PHP Variablen
Grundsätzlich gelten die gleichen Grundregeln wie in der Schule:
- Punkt- vor Strichrechnung: * und / schlagen + und –
- Mit Klammern kann man die Reihenfolge verändern
Welches Ergebnis würde z.B. hier ausgegeben werden?
<?php $a = 5; $b = 3; $c = 4; echo $a + $b * $c; ?>
Die richtige Antwort lautet: 17, da zuerst $b*$c gerechnet wird und das Ergebnis dann mit $a addiert wird.
Wollen wir, dass $a und $b zuerst addiert werden, brauchen wir eine Klammer rund um die beiden:
<?php $a = 5; $b = 3; $c = 4; echo ($a + $b) * $c; ?>
Unser neues Ergebnis ist nun 32. $a + $b ergibt 8, und diese 8 * $c ergibt 32.
4. Sinnvolle Variablennamen finden
Als letztes schauen wir uns jetzt noch kurz an, welche Regeln es für die Namensgebung von Variablen in PHP gibt. Die gibt es nämlich tatsächlich:
4.1 Erlaubte Zeichen für Variablen-Namen in PHP
- Klein-Buchstaben
- Groß-Buchstaben
- Unterstrich (_)
- Zahlen
Eine Variable startet immer mit einem Dollar-Zeichen ($).
Auch wenn es theoretisch möglich ist, einen Variablen-Namen nach dem Dollar-Zeichen direkt mit einem Unterstrich beginnen zu lassen, ist das nicht sehr schlau. Es gibt nämlich einige vordefinierte Variablen (z.B. $_GET, $_POST oder $_SESSION), die so beginnen – zur besseren Unterscheidung sollte es bei den paar vordefinierten bleiben.
Üblicherweise beginnst du Variablen-Namen mit einem Buchstaben, idealweise mit einem Kleinbuchstaben.
4.2 Wie selbsterklärend und auch eindeutig ist der Variablen-Name?
Variablen unterscheiden sich meist in zwei grobe Kategorien:
- Variablen, die du immer wieder brauchst, mit ganz bestimmter Bedeutung
- Helfer-Variablen, die du nur kurz brauchst, z.B. um etwas zu zählen
Im ersten Fall ist es wichtig, dass deine Variable schon aus ihrem Namen heraus erklärt, wofür sie steht. Das erspart dir später viel Zeit, weil du nicht ständig darüber nachdenken musst oder extra Kommentare neben die Variable schreiben musst, was sie eigentlich bedeutet.
Im zweiten Fall kannst du auch ganz kurze, nichtssagende Namen wie z.B. $x oder $i verwenden – sie sind schneller zu schreiben.
Was ganz schwierig ist, sind Variablen-Namen, die sich untereinander sehr ähnlich sind, z.B.:
- $anzahlFahrer, $fahrerAnzahl und $anzahlFahren
- $I und $l (großes I und kleines L)
Faustregel: Alles, was du tun kannst, um später Verwirrung zu vermeiden, solltest du nutzen.
Disziplin in der Benennung von Variablen ist eine solche nützliche Angewohnheit.
4.3 Verbreitete Schreibweisen für Variablen-Namen in PHP
Wenn es sich nicht um „Wegwerf-Variablen“ handelt, sondern um welche, deren Name selbsterklärend sein sollte, macht es Sinn, sich unabhängig vom Variablen-Namen selbst bestimmte Muster für die Benennung anzutrainieren. Auch das kann für Übersicht sorgen.
Im Grunde gibt es in der Programmierung bei der Benennung von Variablen 2 weit verbreitete Varianten:
- snake-case: anzahl_fahrer, income_counter ( Ein Unterstrich „_“ nach jedem Teil-Wort)
- camel-case: anzahlFahrer, incomeCounter (bei jedem Teil-Wort wieder groß beginnen)
Du kannst ausprobieren, welche Variante dir mehr gefällt – und dann bleibst du am besten bei einer der beiden. Sie zu mischen sorgt eher für Verwirrung.
In den meisten Teams wird eine der beiden Varianten von allen Team-Mitgliedern verwendet, unabhängig von der jeweiligen Programmiersprache.
Sobald du dich einmal daran gewöhnt hast wirst du merken, dass eine solche immer gleiche Schreibweise einen deutlichen Entlastungs-Effekt beim Programmieren hat.
Das wars auch schon wieder fürs erste 🙂
Da Variablen in PHP einer der Grundbestandteile von allem sind, macht es Sinn, dir selbst noch ein paar Aufgaben auszudenken und versuchen sie nachzubauen.
Wie würde z.B. ein PHP-Skript aussehen, dass ausgehend von 2 PHP Variablen alle möglichen Rechnungen samt Endergebnis anzeigt?