Ternärer Operator – Kurzform für If then else

Das “if else”-Konstrukt wird in PHP sehr häufig verwendet, daher haben die Entwickler eine Kurzform für if else herausgebracht. Auch wenn sie für Anfänger häufig nicht so leicht verstanden wird, kann sie in manchen Fällen Platz und Codezeilen sparen. Das ganze nennt sich der ternärer Operator und sieht folgendermaßen aus:

Die Syntax für die Kurzform von if else sieht folgendermaßen aus:

<?php
	(wenn Ausdruck wahr) ? (mache das hier) : (ansonsten das hier)
?>

Nun ein paar Beispiele:

<?php
	if($alter < 18)
		echo 'Du bist nicht volljährig';
	else
		echo 'Du bist volljährig';

	//als Kurzform
	echo ($alter < 18) ? 'Du bist nicht volljährig' : 'Du bist volljährig';
?>
<?php
	if($a > $b)
		$b = $a;
	else
		$a = $b;

	//als Kurzform
	($a > $b) ? $b = $a : $a = $b;
?>
<?php
	if($a > $b)
		$c = $a;
	else
		$c = $b;

	//als Kurzform
	$c = ($a > $b) ? $a : $b;
?>

Angenommen wir haben eine Anzeige die dir die Stunden ausgibt seitdem du das letzte mal eingeloggt warst. Also ist die Ausgabe “zuletzt eingeloggt vor x Stunden”, doch für die Stunde 1 müsste die Ausgabe folgendermaßen lauten: “zuletzt eingeloggt vor 1 Stunde”, also ohne das n.

Normal:

<?php
	if($stunden == 1)
		echo 'zuletzt eingeloggt vor 1 Stunde';
	else
		echo 'zuletzt eingeloggt vor '.$stunden.' Stunden';
?>

If Else Kurzform

<?php
	echo 'zuletzt eingeloggt vor '.$stunden.' Stunde'.(($stunden==1) ? "" : "n");
?>

Natürlich kann man das auch immer mit dem kompletten “if/else”-Konstrukt machen, meistens ist das sogar verständlicher, doch in manchen Fällen ist eine Kurzform einfach nützlich.

hier geht's weiter...

Kommentare


Hallo,
ich glaube, hier ist was verdreht:
<?php if($a > $b) $c = $a; else $c = $b;
//als Kurzform $c = ($a > $b) ? $b : $a; ?>
Es müsste glaub ich heißen:
//als Kurzform $c = ($a>$b) ? $a : $b; ?>


ah stimmt, vielen Dank für den Hinweis!

Kommentar schreiben

Kommentar

Hilfe:

<strong>fettgedruckt</strong> => fettgedruckt

<em>kursiv</em> => kursiv

<a href="http://wordpress.lernenhoch2.de">Link</a> => Link

[code]<?php echo 'hello world'; ?>[/code]

*

Feedback Formular