Webentwicklung mal ganz einfach!
← Zurück zur Übersicht

Alternative (Kurz-) Schreibweisen für if-Anweisungen in PHP

Publiziert am von Markus Hauser

In PHP gibt es ein paar Möglichkeiten eine if-Anweisung zu schreiben. Dabei gibt es kein "richtig" oder "falsch", es ist einfach eine persönliche Geschmackssache. In diesem Beitrag möchte ich euch die verschiedenen (mir bekannten) Varianten näher bringen. Vielleicht findet der Eine oder die Andere eine alternative Schreibweise übersichtlicher und hat es damit in Zukunft leichter beim Programmieren. Bei jeder Schreibweise sind übersichtlich die Vorteile und Nachteile angegeben.

1.1 Die weit bekannte Schreibweise

  • Flexibel bei nachträglichen Erweiterungen.
  • Möglichkeit beliebig vieler elseif.
  • Beliebig viel PHP-Code innerhalb der geschwungenen Klammern.
  • Langsames Tippen durch viele Klammern.
if ($a == $b) {
    // mach' dies
} elseif ($a == $c) {
    // mach' das
} else {
    // mach' was andres
}

1.2 Ausgeschriebene Variante ohne geschwungene Klammern

Gleichen Vor- / Nachteile wie Variante 1.1, nur mit Doppelpunkte und "endif" statt der geschwungenen Klammern.

if ($a == $b):
    // mach' dies
elseif ($a == $c):
    // mach' das
else:
    // mach' was andres
endif;

2.1 Kurzgeschriebene Variante ohne geschwungene Klammern

Wenn man innerhalb einer if-Anweisung nur einen Befehl ausführen möchte (hier die echo-Befehle), darf man die Klammern weglassen. Faustregel: Trifft die if-Anweisung zu, wird alles bis zum nächsten Semikolon ";" ausgeführt.

  • Kann später mit geschwungenen Klammern erweitert werden.
  • Möglichkeit beliebig vieler elseif.
  • Schnelleres Tippen wegen fehlender Klammern.
  • Nur ein PHP-Befehl innerhalb der if-Anweisung möglich.
if ($a == $b)
    echo 'Gleich B';
elseif ($a == $c)
    echo 'Gleich C';
else
    echo 'Ungleich';

2.2 Kurzgeschriebene Variante mit nur einem if

Die kurzgeschriebene Variante eignet sich hervorragend wenn man nur eine if-Anweisung ohne else hat und nur einen Befehl ausführen will, da man dies als netten Einzeiler gestalten kann. Gleiche Vor- / Nachteile wie bei 2.1.

// wenn $a leer ist, wird es auf die Zahl 3 gesetzt
if ( empty($a) ) $a = 3;

3. In-Line Variante: If / else innerhalb von echo verwenden

Durch eine besondere Schreibweise kann ein if mit einem else direkt in ein echo, oder einem anderen inline Kontext wie einer Variablenzuweisung, verwenden.

  • Kann direkt verwendet werden, innerhalb einer anderen Anweisung.
  • Sehr kurze Schreibweise.
  • Kann später nicht erweitert werden.
  • Nur ein PHP-Befehl innerhalb der if-Anweisung, sowie der else möglich.

Erklärung: Die runde Klammer wird wie ein String behandelt und direkt an das "Foo: " drangehängt. Innerhalb der Klammern kommt als erstes der if-Vergleich, dann das Fragezeichen "?", gefolgt von dem if-Teil der ausgeführt wird, wenn der Vergleich true ergeben hat. Getrennt mit einem Doppelpunkt folgt der else-Teil, der ausgeführt wird, wenn der Vergleich false ergibt.

// Wenn $a gleich $b, wird "Foo: Ist gleich" ausgegeben
// Wenn $a ungleich $b, wird "Foo: Ungleich" ausgegeben
echo "Foo: ".($a == $b ? "Ist gleich" : "Ungleich");

Welche if-Anweisung verwendest du am liebsten, und weshalb? Schreib' es als Kommentar! Ich wünsche viel Spaß beim Ausprobieren und herumtüfteln!

Markus 

← Zurück zur Übersicht
Eingeordnet in: PHP / MySQL
Lesezeichen: Permalink zum Beitrag

Kommentare (3)

Kevin

Wer 2.1 verwendet gehört verschlagen
Die 2.1er Varainte ist meiner Meinung nach zu fehleranfällig. Sobald man dann eine Zeile mehr Code schreibt, muss man die IF Variante wieder umbauen. Deswegen verwende ich diese generell nicht.

Markus

Na dann, viel Spaß dabei
Ich persönlich verwende die Varianten 1.1, 2.2 und 3. Je nachdem welcher Anwendungsfall eignet eben eine Art besser als die Andere.

ZeC

Ist ja ordentlich genial.
Da hab ich wohl ne Menge zum umschreiben :D

← Zurück zur Übersicht