5.1 PHP-Grundlagen - Variablen, Bedingungen

Zunächst möchte ich Sie mit den Grundlagen von PHP vertraut machen. Dazu gebe ich Ihnen, wie zuvor in den HTML- und CSS-Grundlagen eine möglichst kompakte Übersicht, die lediglich einen Teil der enorm vielen Möglichkeiten von PHP darstellt. Alles Weitere, was Sie für diese Webseite benötigen, erläutere ich Ihnen in späteren Unterkapiteln anhand konkreter Beispiele.
Beginnen möchte ich in diesem Unterkapitel mit einem Einstieg und damit, wie Sie mit Variablen und Bedingungen arbeiten können.

Einstieg

Generell unterscheiden sich PHP-Dateien zunächst nur durch ihre Endung von HTML-Seiten. Anstelle von .html können Sie einfach .php verwenden, wobei diese Dateien nicht zwingend PHP-Code enthalten müssen und ebenso normalen HTML-Quellcode darstellen können. Quellcode 1 enthält erneut eine minimale HTML-Webseite, die in Zeile 8 um etwas PHP-Code erweitert wurde.

Quellcode 1 - HTML Eine minimale HTML-Seite mit PHP-Code.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
  4.   <head>
  5.     <title>Seitenbeschreibung</title>
  6.   </head>
  7.   <body>
  8.     <?php echo "Hallo Welt!"; ?>
  9.   </body>
  10. </html>

PHP-Codeblöcke, wie Sie ihn in Zeile 8 auffinden können, werden durch <?php geöffnet und durch ?> geschlossen. Innerhalb dieses Codeblocks können Sie nun PHP-Code schreiben. Der Befehl echo sorgt in PHP beispielsweise dafür, dass die darauf folgende Zeichenfolge (auch als String bezeichnet) ausgegeben wird. Ein Semikolon schließt die Anweisung und trennt sie von der Nächsten.
In diesem Beispiel wird durch PHP-Code lediglich ein String ausgegeben. Da dies auch ohne PHP in HTML möglich gewesen wäre, zeige ich Ihnen im folgenden Abschnitt den Umgang mit Variablen, durch die Sie weitaus mehr Dynamik erhalten.

Variablen

Variablen sind Elemente, in denen Sie Inhalte speichern und anschließend wiederverwenden können. Sie werden immer durch das $-Zeichen eingeleitet und dürfen lediglich Buchstaben, Zahlen und Unterstriche enthalten. Zudem darf eine Variable nicht mit einer Zahl beginnen. Die Variablennamen $var oder $_var1 wären demnach gültig, $1var oder $var*s aber nicht. Zudem müssen Sie darauf achten, dass auch die Groß- und Kleinschreibung eine Rolle spielt, da $var nicht das Gleiche wie $Var ist.

Quellcode 2 zeigt anhand eines einfachen Beispiels die Zuweisung und mögliche Verwendung von Variablen.

Quellcode 2 - PHP Variablen können verschiedenste Inhalte speichern.
  1. <?php
  2.   $var = "Hallo";
  3.   $var2 = 'Welt!';
  4.   $var3 = "Hallo $var2";  
  5.   echo $var.' '.$var2;
  6. ?>

Die Zuweisung von Variablen erfolgt über das Gleichheitszeichen. Variable $var weise ich einen String zu, ebenso wie $var2. Der Unterschied der beiden Anführungszeichen-Typen liegt darin, dass der String in Zeile 2 auf Variablen geparsed (engl. to parse: "analysieren") wird und der in Zeile 3 nicht. Ein konkretes Beispiel dazu zeigt Zeile 4, in der eine Variable im String selbst vorkommt. Verwenden Sie doppelte Anführungszeichen, so wird diese Variable ersetzt. Die Ausgabe für diesen Fall ist Hallo Welt!. Verwenden Sie einfache Anführungszeichen, so wäre die Ausgabe Hallo $var2. Generell sollten Sie meiner Meinung nach immer einfache Anführungszeichen verwenden. Dies hat den Grund, dass der String nicht auf Variablen von PHP geprüft werden muss, was somit einen winzigen Tick schneller ist. Möchten Sie dennoch einen Text wie in Zeile 4 ausgeben, so zeigt Zeile 5 eine Möglichkeit. Dabei werden 2 Variablen durch Punkte mit einem Leerzeichen dazwischen verbunden und durch den echo-Befehl ausgegeben.

Bisher war lediglich von Strings, also Texten in Variablen die Rede. Selbstverständlich können Variablen auch andere Inhalte speichern. So zum Beispiel Zahlen, die als Integer-Datentyp (lat. integer: "ganz, unvermindert") bezeichnet werden. Quellcode 3 zeigt ein paar Beispiele.

Quellcode 3 - PHP Rechenoperationen mit Variablen werden sehr häufig benötigt.
  1. <?php
  2.   $var = 5;
  3.   $var2 = $var + 3;
  4.   $var3 = $var++;
  5. ?>

In Zeile 2 weise ich einer Variablen wie gewohnt einen Wert zu. Diesen Wert weise ich in Zeile 3 $var2 zu und erhöhe ihn bei dieser Zuweisung um +3. In Zeile 4 wird der Wert aus der ersten Variablen um 1 erhöht, wodurch $var3 den Wert 6 erhält.

Bedingungen

Oftmals tritt der Fall auf, dass je nachdem was ausgewählt oder zuvor passiert ist, etwas Anderes ausgelöst werden soll. Dafür gibt es Bedingungen, mit denen Sie etwa abfragen können, ob ein Fehler aufgetreten ist. Ist dies der Fall, so soll sich das Programm anders verhalten als wenn der Fehler nicht aufgetreten wäre.

if-Anweisung

Für einzelne "wenn... , dann..., sonst..."-Bedingungen kann die sogenannte if-Anweisung verwendet werden. Quellcode 4 zeigt ein Beispiel.

Quellcode 4 - PHP Eine simple Fallunterscheidung mit einer if-Anweisung.
  1. <?php
  2.   if(strlen($name) > 20)
  3.   {
  4.     echo 'Der von Ihnen angegebene Name ist zu lang.';
  5.   }
  6.   else
  7.   {
  8.     echo 'Wunderbar, der Name hat die richtige Länge und wurde erfolgreich gespeichert.';
  9.   }
  10. ?>

Die if-Anweisung beginnt, wie es der Name selbst bereits sagt, mit einem if und einer darauf folgenden Klammer, in der die Bedingung steht. In Zeile 2 wird geprüft, ob der Name in der Variable länger als 20 Zeichen lang ist. Dafür verwende ich die Funktion strlen, die mir Länge der in der Variable enthaltenen Zeichen liefert. Anschließend wird verglichen, ob diese Zahl größer als 20 ist. Ist dies der Fall, wird der Hinweis in Zeile 4 ausgegeben. Ist dem nicht so, also else, wird Zeile 8 ausgegeben.

if-Anweisungen können Sie beliebig schachteln, das heißt, dass Sie innerhalb der Anweisung eine weitere Bedinung prüfen können oder sogar mit elseif eine weitere Bedingung testen können wenn die erste nicht zutrifft. Wie dies aussieht zeigt Quellcode 5.

Quellcode 5 - PHP Eine if-Anweisung können Sie beliebig schachteln oder wie in diesem Beispiel um weitere Bedingungen erweitern.
  1. <?php
  2.   if($var1 > $var2)
  3.   {
  4.     echo 'Zahl 1 ist größer als Zahl 2.';
  5.   }
  6.   elseif($var1 == $var2)
  7.   {
  8.     echo 'Zahl 1 ist genauso groß wie Zahl 2.';
  9.   }
  10.   else
  11.   {
  12.     echo 'Zahl 2 ist größer als Zahl 1.';
  13.   }
  14. ?>

In Zeile 6 prüfe ich, falls die Bedingung in Zeile 2 nicht wahr geworden ist, ob beide Zahlen gleich groß sind. Achten Sie dabei darauf, dass Sie 2 Gleichheitszeichen verwenden müssen, denn ein Gleichheitszeichen ist eine Zuweisung und kein Vergleich!

Fallunterscheidung

Da Sie das zuletzt gezeigte Beispiel in Quellcode 5 endlos weiter führen könnten durch zahlreiche elseif-Anweisungen, gibt es ein Konstrukt, welches bei sehr vielen Fallunterscheidungen wesentlich übersichtlicher ist. Dabei ist die Rede von einem Switch, den ich Ihnen direkt am Beispiel in Quellcode 6 demonstrieren möchte.

Quellcode 6 - PHP Ein Switch sorgt bei vielen Bedingungen für mehr Übersicht.
  1. <?php
  2.   switch($day)
  3.   {
  4.     case 'Montag': echo 'Der '.$day.' ist der Anfang der Woche';
  5.       break;
  6.     case 'Dienstag': echo 'In den meisten Kinos ist heute Kinotag. ;-)';
  7.       break;
  8.     case 'Mittwoch': echo 'Mitten in der Woche, so ist der '.$day.'!';
  9.                      $i++;
  10.       break;
  11.     default: echo 'Es ist weder Montag, noch Dienstag und auch nicht Mittwoch.';
  12.   }
  13. ?>

Zunächst sage ich dem Switch in Zeile 2, welche Variable geprüft werden soll. Anschließend kann ich die verschiedenen Fälle (engl. cases) definieren und was dann passieren soll. In Zeile 4 prüfe ich die Variable $day auf ihren Inhalt und wenn darin das Wort Montag steht, soll der darauf folgende Text ausgegeben werden. Dieses Beispiel in Zeile 4 zeigt zudem nochmals, wie Sie Strings verbinden (fachl. konkatenieren) und dazwischen Variablen einbinden können. In Zeile 5 wird anschließend ein break ausgeführt. Fehlt diese Zeile, wird die nächste Bedingung geprüft, was ich in diesem Fall vermeiden möchte. Selbstverständlich kann eine Bedingung wesentlich mehr Befehle enthalten, wie Zeile 9 zeigt. Dort erhöhe ich zusätzlich zur Ausgabe einen Wert.
Zeile 11 definiert den Standard-Fall, also das was passieren soll, wenn keiner der zuvor definierten Fälle eintritt. Wenn Sie also das break in Zeile 5 vergessen und die Variable $day den Montag enthält, so trifft der erste Fall zu und der Standard-Fall, weshalb es sehr wichtig ist, dass Sie an die breaks denken. Nach dem Standard-Fall benötigen Sie übrigens in diesem Beispiel kein break, da es sich um den letzten Fall handelt.
< 5 Programmierung 5.2 PHP-Grundlagen - Schleifen, Funktionen >