Zu den neuen Sprachelementen der am heutigen 26. November 2020 erschienenen nächsten Hauptversion PHP8 der immer noch meistverwendeten Programmiersprache im Internet gehört das Konstrukt „match“, das in vielen Fällen ein besserer Ersatz für das altbekannte „switch“ ist. Hier zeigen wir die Vorteile der neuen Fallverzweigung von PHP8 an einem typischen Beispiel (Text zum Statuscode).
Zunächst die Statusausgabe mit dem bisherigen switch:
switch ($statusCode) { case 200: case 300: $ausgabe = null; break; case 400: $ausgabe = 'nicht gefunden'; break; case 500: $ausgabe = 'Serverfehler'; break; default: $ausgabe = ‘unbekannt'; break; }
Und hier das Gleiche mit dem neuen match:
$ausgabe = match ($statusCode) { 200, 300 => null, 400 => 'nicht gefunden', 500 => ‘Serverfehler', default => 'unbekannt', };
Man sieht auf den ersten Blick, das match aus dem Fünfzehnzeiler mit switch einen Sechszeiler macht. In den meisten anwendbaren Fällen ist match signifikant kürzer als switch.
Match kann aber auch mehrere Zweige der Fallverzweigung mit einem Komma getrennt zusammenfassen und braucht auch kein break –Statement nach jedem Zweig und kein Semikolon am Ende.
Außerdem gibt match auch einen Wert zurück, so dass man diesen Wert nur einmal und nicht erneut in jedem Zweig zuordnen muss.