if / elseif / else
if ($alter < 18) {
echo 'minderjährig';
} elseif ($alter < 65) {
echo 'erwerbsfähig';
} else {
echo 'im Ruhestand';
}
Ternärer Operator & Kurzform
$status = $isPaid ? 'bezahlt' : 'offen';
// Elvis-Operator (Kurzform):
$name = $user->name ?: 'Anonym'; // wenn $user->name falsy → 'Anonym'
switch (klassisch)
switch ($rolle) {
case 'admin':
case 'moderator':
$level = 10;
break;
case 'user':
$level = 1;
break;
default:
$level = 0;
}
match (PHP 8.0+, moderner & sicherer)
match ist ein Ausdruck — er gibt einen Wert zurück. Er nutzt strict comparison (===), kein fall-through, und wirft einen Fehler bei nicht gematchten Werten:
$level = match ($rolle) {
'admin', 'moderator' => 10,
'user' => 1,
'guest' => 0,
default => throw new InvalidArgumentException("Unbekannte Rolle: $rolle"),
};
Faustregel: Nutze match statt switch. Es ist prägnanter, typ-sicher und funktional.