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.

Beautyshop | am 28. November 2011 um 10:57 Uhr
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; ?>