PHP lernen – Variablen und Datentypen

Servus,

weiter geht’s mit PHP. Du weißt jetzt schon, wie man HTML mit PHP mischt und wie man mit PHP Ausgaben erzeugen kann, die dann im Browser angezeigt werden. Im heutigen Artikel widmen wir uns den Variablen. Variablen sind ein sehr wichtiges Thema, sie sind Bestandteil jeder Programmiersprache und von essentieller Bedeutung, wenn wir flexibel und dynamisch programmieren wollen.

Was sind Variablen?

Vielleicht hast du in der Schule schonmal mit Variablen zu tun gehabt. Das sind in den mathematischen Rechnungen diese Buchstaben die man auflösen muss ( 12 = x + 4  – finde x ). Nun, so kompliziert wird die Verwendung von Variablen bei PHP nicht, da kann ich dich beruhigen.

In PHP ist eine Variable eine Art Speicher oder Behälter für Werte. Sie ermöglichen uns eine flexible Programmierung, da wir Werte speichern und sie wieder abrufen und ändern können – oder auch löschen. Wenn eine Variable im Skript erstellt wird (deklariert wird), wird im Arbeitsspeicher ein bestimmter Bereich für diese Variable reserviert. In diesem Bereich kann dann der Wert der Variable abgelegt, abgerufen und geändert werden. Eine Variable ist so lange verfügbar wie das Skript läuft.

Wie verwende ich Variablen in PHP?

Variablen in PHP werden mit vorangestelltem Dollar-Zeichen $  erzeugt. Dem folgt anschließend der Name der Variable, zum Beispiel $Variable . Einer Variable kann dann ein Wert zugewiesen werden. Bevor ich jetzt großartig das Erklären anfange, lass es mich einfach an einem Beispiel zeigen:

Du siehst, das ist doch schonmal ganz einfach. Das Beispiel erzeugt folgende Ausgabe:

Zusammengefasst also folgende Schritte zur Verwendung von Variablen:

  1. Variable deklarieren
    Mit der Deklaration wird dem Skript bekannt gemacht, dass hier eine Variable erstellt wird. Und dass sie über einen bestimmten Namen angesprochen werden kann, um ihren Wert zu erhalten oder zu ändern.
  2. Wert zuweisen (=Initialisierung)
    Wenn eine Variable deklariert ist, kann ihr anschließend ein Wert zugewiesen werden. Im eben gezeigten Code-Beispiel weisen wir einen Wert vom Datentyp „String“ zu, also eine Zeichenkette (in Anführungszeichen, wie du gelernt hast).
  3. Variablendeklaration und -Wertzuweisung in einem
    Man kann das wie du im Beispiel-Code siehst auch abkürzen, indem man einer Variable schon bei der Deklaration einen Wert zuweist. Geht schneller zu schreiben, wir brauchen nur 1 Zeile statt 2.

Eine Variable kann wie gesagt einen beliebigen Namen haben. Dennoch gibt es gewisse Regeln, an die man sich halten muss:

  • Eine Variable muss mit einem Buchstaben oder Unterstrich beginnen.
  • Danach darfst du Unterstriche, Zahlen und Buchstaben verwenden.
  • Variablennamen sind Case Sensitive, das bedeutet, dass Groß- und Kleinschreibung eine Rolle spielt. $Variable  ist also nicht das gleiche wie $variable .

Eine Variable kann übrigens nicht nur einen statischen Wert sondern auch das Ergebnis eines Ausdrucks erhalten:

Die Ausgabe ist simpel: 14 .

Hinweis zur Ausgabe mit echo
Achte darauf, wie du Variablen ausgibst. Es gibt mehrere Möglichkeiten:

  • So wie sie sind, also echo $Variable;  wie wir es auch auch im obigen Beispiel gemacht haben.
  • In doppelten Anführungszeichen, also echo "$Variable";
  • In einfachen Anführungszeichen, also echo '$Variable';  – und hier gibt es eine Besonderheit, denn bei der Ausgabe in einfachen Anführungszeichen wird der Wert der Variable nicht aufgelöst sondern nur als Text ausgegeben.

Zum Verständnis das folgende Beispiel:

erzeugt die Ausgabe:

 

Variablen und Strings verketten
Im letzten Artikel hast du gelernt, dass man Strings und Ausdrücke mit dem Punkt . verbinden kann. Nun, hier ändert sich nichts, das gleiche funktioniert genau so auch mit Variablen:

Die Ausgabe ist Hallo Welt .

 

Datentypen

Was sind Datentypen?

Ohne dass du es wahrscheinlich weißt, haben wir bereits mit 2 Datentypen gearbeitet – String und Integer. Der Datentyp gibt den Typ einer Variable an und somit, was für eine Art von Wert sie speichert (und ganz nebenbei auch, wieviel Platz im Speicher dafür reserviert wird). Sehen wir uns die vier sogenannten skalaren Typen (skalar bedeutet vereinfacht ausgedrückt, dass Variablen skalaren Typs nur jeweils einen Wert speichern können) an.

String
Eine Variable vom Typ String enthält Text, wird also in Anführungszeichen gesetzt.

Integer
Enthält Ganzzahlen-Werte, also Zahlen wie 1, 2, 3, 900, -14, 94882, -316 und so weiter. Das heißt ganze Zahlen, keine Zahlen mit Nachkommastellen.

Float (auch Dezimalzahl oder Fließkommazahl gekannt)
Enthält Fließkommazahlen, also Zahlen wie 1.5 oder 16.0 oder -9.4 und so weiter. Hier wird übrigens die englische Schreibweise verwendet, das Dezimaltrennzeichen ist ein Punkt und nicht wie im deutschen ein Komma. Variablen vom Typ float oder double sind bei PHP dasselbe.

Boolean
Eine Variable vom Typ Boolean kann nur einen von zwei möglichen Zuständen annehmen, nämlich true oder false (also WAHR oder FALSCH, JA oder NEIN, 1 oder 0 … du verstehst schon).

 

Wie kann ich den Datentyp einer Variable festlegen?

PHP legt den Datentyp einer Variable automatisch anhand des übergebenen Werts fest. Es gibt da eine nette Funktion namens gettype(...) , und die zeigt uns wenn wir ihr eine Variable als Argument übergeben, von welchem Typ diese ist:

 

Und wofür brauche ich Datentypen?

In erster Linie, um sauber zu programmieren. In anderen Programmiersprachen gibt man den Datentyp einer Variable bei der Deklaration an – bei PHP ist das nicht der Fall. Ich erwähnte schonmal, dass PHP eine typenschwache Sprache ist – und damit ist eben dies gemeint. Man kommt so in Versuchung, unsauber zu programmieren. Ich zeige dir an den entsprechenden Stellen die Fallstricke auf und auch, wie man es richtig macht.

Je nach Datentyp enthält eine Variable Werte unterschiedlichen Typs und dementsprechend andere Funktionen und Operationen können mit den Werten durchgeführt werden. Du wirst sicher nicht vorhaben, in einer Zahl nach einer bestimmten Textstelle zu suchen – ebenso wenig wirst du vermutlich versuchen, zwei Texte zu multiplizieren oder den Text „Hallo“ durch „Welt“ zu dividieren. Ist ja Blödsinn.

Datentyp-spezifische Funktionen nutzen

Nun möchte ich dir zeigen, welche verschiedenen, von PHP bereits vordefinierten Funktionen es so gibt und für welchen Datentyp sie am besten geeignet sind.

String-Funktionen

Mit Text lässt sich allerhand anstellen. Hier einige Funktionen die sich auf Texte anwenden lassen:

Das sind nur einige String-Funktionen, es gibt noch weitere, zum Beispiel um Hashes zu erzeugen oder einen String nach Base64 zu kodieren, RegEx und noch vieles mehr. Eine ganze Liste kannst du auf php.net ansehen.

Schauen wir uns aber kurz substr an, die Funktion wird relativ oft gebraucht. Wie du schon in den Kommentaren im Code lesen kannst, gibt uns diese Funktion einen Teil eines Strings zurück. Wir übergeben zuerst den String, danach der Index ab dem wir den Bereich extrahieren möchten und zum Schluss die Länge die ab dem angegebenen Index herausgeholt wird. Jedes Zeichen in einem String ist ja an einem bestimmten Index, das heißt der erste Buchstabe ist an Index 0, der zweite Buchstabe ist an Index 1, der dritte Buchstabe an Index 2 und so weiter.

Eine kleine Grafik veranschaulicht das:

Beispiel mit substr
Beispiel mit substr

Zahlen

Wie schon gezeigt kann man mit Zahlen (Integer und Float) mathematische Operationen durchführen. Einige praktische Funktionen zeige ich dir in diesem Code:

Auch hier gibt es natürlich noch weitaus mehr Funktionen für alles mögliche wie beisp. Sinus, Kosinus, Umrechnung ins Hexadezimalsystem, Tangens, Absolutwert, bla bla bla und so weiter – eine Liste aller mathematischen Funktionen ebenfalls wieder auf php.net.

Zufallszahlen
Wo wir grade bei Zahlen sind kann ich dir gleich noch zeigen, wie sich zufällig welche erzeugen lassen. Mit der Funktion rand() können Zufallszahlen generiert werden – man gibt einen Bereichan, in dem die zu generierende Zufallszahl erzeugt werden soll. Hier einige Beispiele was man damit unter anderem anstellen kann:

Funktion rand() auf php.net nachschlagen: http://php.net/manual/de/function.rand.php.

Noch besser ist es übrigens, die Funktion mt_rand()  zu verwenden, die „bessere“ Zufallszahlen erzeugt, außerdem ist der Algorithmus dahinter ist 4x schneller als bei rand(). Verwenden tut man sie aber genauso, also zum Beispiel echo mt_rand(0, 10); . Mehr dazu: http://php.net/manual/de/function.mt-rand.php.

Boolean-Funktionen

Tja, hierzu habe ich gerade nichts für dich. Interessant werden Boolean-Variablen, wenn wir mit Kontrollstrukturen arbeiten (WENN … DANN …).

 

FAQ

Was sind eigentlich diese „Funktionen“ von denen hier immer die Rede ist?
Ja, gute Frage. Ich geb zu ich greife damit ein wenig vor – das Thema Funktionen wird in einem der nächsten Artikel ausführlich behandelt und ich zeige dir, wie man eigene Funktionen schreibt.
Funktionen sind eine kleine Ansammlung von Code, die eine bestimmte Aktion ausführen bzw. Aufgabe erledigt. Weiter oben hast du ja bereits viele Funktionen kennengelernt. Du sprichst eine Funktion über ihren Namen an und in den meisten Fällen übergibst du beim Aufruf noch einige Werte. So wie du das zum Beispiel bei den Zufallszahlen gesehen hast. Gut, du kannst z.B. rand() auch ohne Argumente aufrufen, aber dann spuckt dir die Funktion einfach Zahlen von 0 bis irgendwas (und das entscheidet PHP in dem Fall selbst) aus. Viel besser ist es aber, wenn du der Funktion mitteilen kannst, dass du gern beeinflussen möchtest, in welchem Zahlenbereich die Zufallszahlen generiert werden sollen. Hierfür können an die Funktion optional 2 Argumente (Werte) übergeben werden.
Die Funktion empfängt deine übergebenen Werte, verarbeitet sie und gibt anschließend im Regelfall wieder einen Wert zurück (den du dann einer Variable zuweisen oder direkt ausgeben kannst).
Wenn du dir trotzdem nichts genaues drunter vorstellen kannst, nicht schlimm. Wenn ich dir bald zeige wie du eigene Funktionen schreibst, wirst du das alles viel besser verstehen, ist keine schwierige Sache 😉

Fazit

Variablen sind ein äußerst wichtiges Thema und mit jedem Schritt den wir gehen und mit jedem Code den du lernt, kannst du mit all den Sachen mehr anfangen. Je mehr du lernst desto besser wird dir verständlich, welchen Nutzen Variablen haben. Vieles in der Programmierung wird ja erst durch Kombination mit anderen Sprachkonstrukten und Themen sinnvoll. Hätten wir beispielsweise zuerst mit Variablen angefangen und ich hätte dir erst hinterher gezeigt, wie man mit echo Ausgaben erzeugt, dann hättest du dich beim Lesen sicher ständig gefragt, wofür Variablen gut sein sollen, wenn man davon im Browser nichts sieht.
Oft ist es so, dass man manche Dinge nur zur Hälfte versteht – vielleicht geht es dir gerade mit Variablen so. Aber ich kann dir versichern das ist kein Grund zur Sorge, du hängst jetzt nicht hinterher oder so. Ich empfehle dir, dass wenn du jetzt die nächsten paar zukünftigen Artikel gelesen hast, einfach mal wieder hierher zurückspringst und diesen Artikel nochmal liest. Das wird dir beim Lesen einen Aha!-Effekt geben. Diese Momente sind im Leben eines Programmierers etwas besonderes. Du wirst es erleben 😉

 

Grüße
Marius

4 Kommentare

  1. Also, wirklich gutes Tutorial.
    Hat wesentlich geholfen, meine Berührungsängste mit php abzuschwächen.
    Ich freue mich schon auf die Fortsetzung !!!

    1. Hi,

      danke für deinen Kommentar 🙂 Ich freue mich dass dir mein Artikel gefällt und dir hilft, PHP zu meistern. Ich schreibe schon fleißig am nächsten Artikel. Schönen Abend 🙂

      Gruß
      Marius

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.