smart | Webentwicklung
Alles rund um HTML5, PHP, WordPress & Co.

Varianten der if-else-Kontrollstruktur in PHP

1. April 2012
Stephan
PHP

Die if-else-Kontrollstruktur ist in vielen Programmiersprachen elementar und so gibt es dieses Konstrukt natürlich auch in PHP. Es gibt aber unterschiedliche Varianten, die ich in diesem Artikel einmal vorstellen möchte.

Einige Varianten der if-else-Kontrollstruktur werden den meisten bekannt vorkommen, aber eventuell ist die ein oder andere Variante dem ein oder anderen doch nicht so geläufig.

Viele kennen z.B. die Kurzform des if-else-Konstrukts, welche als Trinitäts-Operator bzw. Ternärer-Operator bezeichnet wird. Dagegen wissen viele nicht, dass es seit der PHP Version 5.3 auch eine Kurzform des Trinitäts-Operators gibt.

Die Standard-Variante

Diese Variante der if-else-Kontrollstruktur ist wohl diejenige, die am gängisten und am meisten eingesetzt wird.

if($a > $b)
{
	echo 'a ist größer b';
}
else
{
	echo 'a ist kleiner b';
}

Falls man nur eine Anweisung pro if-else-Zweig benötigt, dann kann man auch die geschweiften Klammern weglassen und Folgendes schreiben:

if($a > $b) 
	echo 'a ist größer b';
else
	echo 'a ist kleiner b';

Die eher ungebräuchliche Alternative

Diese Variante habe ich bisher selten in PHP-Skripten gesehen und schätze sie daher eher als ungebräuchliche if-else-Variante ein.

if($a > $b) :
	echo 'a ist größer b';
else :
	echo 'a ist kleiner b';
endif;

Bei dieser Variante sollte man noch beachten, dass beim Einsatz eines zusätzlichen elseif, dieses zusammengeschrieben werden muss, da sonst ein „Parse Error“ die Folge ist.

if($a > $b) :
	echo 'a ist größer b';
// else if($a < $b) : das würde zu einem "Parse Error" führen
elseif($a < $b) :
	echo 'a ist kleiner b';
else :
	echo 'a ist gleich b';
endif;

Trinitäts-Operator / Ternärer-Operator

Dieser Operator ist die Kurzform des if-else-Konstrukts. Da diese Variante bei häufigen Gebrauch bzw. Verschachtelungen sehr unübersichtlich werden kann, sollte man diese Variante mit bedacht einsetzen. Ich bevorzuge diese Variante z.B. bei der Auswertung von Request-Variablen, da es in diesem Fall die Übersichtlichkeit nicht trübt und performant ist.

echo $a > $b ? 'a ist größer b' : 'a ist kleiner b';

Kurzform des Trinitäts-Operator / Ternärer-Operator

Diese Variante kennen denke ich nicht alle und sie wird auch eher selten eingesetzt. Wenn man so will, ist es die Kurzform der Kurzform der if-else-Kontrollstruktur. In unserem Beispiel wird überprüft, ob die Bedingung a ist größer gleich b wahr ist. Falls das der Fall sein sollte, wird der Wahrheitswert true zurückgegeben und mit echo eine „1“ ausgegeben (true wird zu einem String konvertiert, wodurch die „1“ ausgegeben wird), ansonsten wird false zurückgegeben und ein leerer String ausgegeben.

echo $a >= $b ?: false;

Fazit

Es gibt viele Varianten der if-else-Kontrollstruktur in PHP und man sollte für sich selbst entscheiden, welche Variante man bevorzugt und einsetzt. Es sei aber anzuraten, den Trinitäts-Operator mit Bedacht einzusetzen, vor allem wenn man im Team arbeitet und die Übersichtlichkeit bzw. Verständlichkeit des Codes bewahren möchte.

Welche Variante bevorzugt ihr? Gibt es eine Variante, die ihr absolut gar nicht verwenden würdet?

Kommentare  
2 Kommentare vorhanden
1 Nico schrieb am 23. Mai 2013 um 10:03 Uhr

Am liebsten verwende ich if-Abfragen mit den Klammern if(){}. Wenn es mal schnell gehen soll oder völlig ausreicht, wird auch gerne der Ternärer-Operator genommen, echo ($a == $b) ? ‚dann‘ : ’sonst‘;

2 Stephan L. schrieb am 23. Mai 2013 um 15:00 Uhr

Hey Nico,

danke für deinen Kommentar.

Also ich verwende ich auch immer if() {}, weil ich es irgendwie am übersichtlichsten finde. Ansonsten, wie schon im Artikel erwähnt, nutze ich den Trinitäts-Operator meistens bei Auswertung von irgendwelchen $_REQUEST-Variablen.

Grüße

Stephan

0 Trackbacks/Pingbacks vorhanden
Du bist herzlich eingeladen auch ein Kommentar zu hinterlassen!
Kommentar schreiben

Vielen Dank für dein Kommentar!