Während die alten Switch-Anweisungen keinen typensicheren Vergleich ermöglichen, fällt vielen die Schreibweise auch immer wieder schwer. Die match() Funktion hilft hier.
Vorher:
switch ($variable) {
case 'foo':
$newVariable = anyFunctionFoo();
case 'bar':
$newVariable = anyFunctionBar();
default:
$newVariable = 'foobar';
}
Nachher:
$newVariable = match ($variable) {
'foo' => anyFunctionFoo(),
'bar' => anyFunctionBar(),
default => 'foobar',
};
Natürlich kann man auf "default" auch verzichten oder mehrere Werte kommasepariert angeben:
$newVariable = match ($variable) {
'foo', 'foobar' => anyFunctionFoo(),
'bar' => anyFunctionBar(),
};