PHP 4.3

4. Wahrheits- und Existenzprüfung

In dieser Lerneinheit zeigen wir Ihnen, wie Sie Abfragen innerhalb Ihres Skripts nutzen können, um bedingungsabhängig Aktionen auszuführen. Grundlage vieler Wahrheitsprüfungen sind die Vergleichs- und logischen Operatoren, mit denen wir den Einblick in die PHP-Operatoren vertiefen wollen. Neben den Einsatzmöglichkeiten dieser Operatoren erfahren Sie im folgenden Abschnitt auch einige interessante Hintergrundinformationen zur Logik. Die Konzepte zur Ablaufsteuerung von Programmiersprachen werden nach dem Studium dieser Lerneinheit verständlicher sein.


if-Anweisungen

Eine sehr wichtige Funktion in PHP ist die if-Anweisung. if-Anweisungen gehören zu den sogenannten Entscheidungsstrukturen. Mit diesen Strukturen können Sie den Ablauf eines Skriptes steuern, das heißt in Abhängigkeit von Zuständen von Variablen oder Werten Anweisungen ausführen oder auslassen.

Das Wort if stammt aus der englischen Sprache und bedeutet "wenn". Eine if-Anweisung könnte man daher wie folgt lesen:

"Wenn die folgende Bedingung erfüllt ist, also der Wahrheitswert der Prüfung true ergibt, dann führe die Anweisung in den geschweiften Klammern aus!"

In if-Anweisungen nehmen Operatoren eine wichtige Rolle ein. Insbesondere Vergleichsoperatoren, auf die wir auf der folgenden Seite genauer eingehen werden, treten dabei in den Vordergrund. Vorwegnehmend stellen wir bereits einen Vergleichsoperator vor, mit dem wir prüfen können, ob zwei Werte gleich sind. Aus diesem Grund heißt er auch Gleichheitsoperator, ist jedoch nicht zu verwechseln mit dem Zuweisungsoperator, da er nicht mit einem (=), sondern zwei Gleichheitszeichen (==) geschrieben wird. Wie wichtig diese Feststellung ist, werden Sie in den folgenden Beispielen erkennen:

Ein Beispiel für eine einfache if-Anweisung
<?php

  $variable = 5;

  if ($variable == 5) {
    echo "Die Variable ist 5";
  }

?>


Browserausgabe:


Die Variable ist 5

Wie wir eingangs bereits erwähnten, ist von großer Wichtigkeit, zwischen Zuweisungs- und Gleichheitsoperator zu unterscheiden. Wenn Sie innerhalb des Bedingungsteils einer if-Anweisung fälschlicherweise einen Zuweisungsoperator einsetzen, kommt es meist zu logischen Fehlern, da Sie die in der Bedingung notierten Werte oder Variablen nicht miteinander vergleichen, sondern eine Wertzuweisung durchführen. Dies kann in PHP ungewollte Auswirkungen haben: Innerhalb von Bedingungsprüfungen führt PHP eine automatische Typkonvertierung zum Typ Boolean durch. Sofern der zugewiesene Wert in der Bedingungsprüfung eine leere Zeichenkette, "0" oder 0 enthält, wird er innerhalb der Bedingungsprüfung zu false konvertiert, wodurch die Ausführung der Anweisungen innerhalb der geschweiften Klammern abgewiesen wird. Bei allen anderen Werten findet eine Typkonvertierung zu true statt, sodass die Anweisungen ausgeführt werden.

Beachten Sie im obigen Programmierbeispiel die Verwendung der geschweiften Klammern. Erfahrene Programmierer werden deren Bedeutung bereits kennen. Für die Programmierneulinge soll kurz erklärt werden, dass man Folgen von Anweisungen durch geschweifte Klammern zusammenfassen kann. Damit ist dann ganz klar, welche Anweisungen durch das if kontrolliert werden und welche nicht mehr (nämlich die hinter der schließenden geschweiften Klammer). Falls hinter der Bedingung nur eine einzige Anweisung folgt, lässt es PHP zu, die geschweiften Klammern wegzulassen. Wir raten davon jedoch ab, weil die Übersichtlichkeit des Skripts eher darunter leidet und logische Fehler häufig auftreten, wenn später eine zweite Anweisung zur if-Bedingung hinzugefügt werden soll.

Weiterhin sehen Sie im Beispiel, dass die echo-Anweisung eingerückt wurde. Diese Einrückung ist empfehlenswert, da sich der Anfang und das Ende einer solchen Entscheidungsstruktur schneller im gesamten Skript überblicken lässt. Dies kommt insbesondere bei längeren Skripten zum Tragen, in denen Entscheidungsstrukturen ineinander geschachtelt werden. Diese Hinweise zur Formatierung des Skripts sind Teil gewachsener Konventionen innerhalb der Entwicklergemeinde, die Vorteile bieten: Programmierer finden sich untereinander in ihren Skripten zurecht; Anfänger lernen schneller, weil sie nicht verwirrt werden; insgesamt werden weniger Fehler gemacht, weil das Programmieren nachvollziehbar und einheitlich ist. Auf diesen Komplex gehen wir aber noch ausführlich in Lerneinheit 14 dieser Qualifikationseinheit ein.

Alternative if-Syntax

Alternativ ist bei einer if-Anweisung übrigens auch eine andere Syntax möglich. Wie Sie an dem Alternativbeispiel sehen können, kann man den Einsatz der geschweiften Klammern umgehen, indem man mit dem Konstrukt endif arbeitet. Dann kann PHP erkennen, dass die auszuführende Anweisung im Fall true an der Stelle endif endet.

<?php

  $variable = 5;

  if ($variable == 5):
    echo "Die Variable ist 5";
  endif;

?>

Kommentare (0)

Ihr Kommentar

Name