Match-Ausdruck und benannte Argumente
Ersetzen Sie ausführliche switch-Anweisungen durch match und verwenden Sie zur besseren Verständlichkeit benannte Argumente.
Match-Ausdruck und benannte Argumente ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Der Ausdruck match
PHP 8.0 führte match als kompakte Alternative zu switch ein. match verwendet einen strikten Vergleich (===) und gibt einen Wert zurück.
match im Vergleich zu switch
Die wichtigsten Unterschiede: match verwendet einen strikten Vergleich, kennt keinen Fall-through und ist ein Ausdruck, der einen Wert zurückgibt.
<?php
$status = 2;
$label = match($status) {
1 => "active",
2 => "inactive",
3 => "banned",
default => "unknown",
};
echo $label; // "inactive"Mehrere Bedingungen pro Zweig
Trennen Sie mehrere match-Werte durch Kommas, um sie mit demselben Ergebnis zu behandeln.
<?php
$code = 404;
$type = match($code) {
200, 201, 202 => "success",
400, 422 => "client error",
404 => "not found",
500, 503 => "server error",
default => "other",
};
echo $type; // "not found"match löst bei keiner Übereinstimmung eine Exception aus
Wenn kein Zweig übereinstimmt und kein default vorhanden ist, löst PHP einen UnhandledMatchError aus – anders als switch, das stillschweigend fortfährt.
match als Ausdruck
Da match einen Wert zurückgibt, können Sie es direkt verwenden – als Funktionsargument, in einer return-Anweisung oder innerhalb einer String-Interpolation.
<?php
echo "Status: ".match($active) {
true => "ON",
false => "OFF",
};Benannte Argumente
Mit benannten Argumenten können Sie in PHP 8.0 Funktionsargumente anhand des Parameternamens und in beliebiger Reihenfolge übergeben.
<?php
function makeTag(string $tag, string $content, string $class = ""): string {
return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");Vorteile benannter Argumente
Benannte Argumente verbessern die Lesbarkeit von Funktionen mit vielen Parametern, ermöglichen das Überspringen optionaler Parameter und verdeutlichen, wofür die einzelnen Werte stehen.
Benannte Argumente mit integrierten Funktionen
Benannte Argumente funktionieren auch mit integrierten PHP-Funktionen.
<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);Benannte und positionale Argumente kombinieren
Sie können positionale und benannte Argumente kombinieren, aber benannte Argumente müssen nach den positionalen Argumenten stehen.
<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");Benannte Argumente in array_map
Benannte Argumente sind besonders bei variadischen integrierten Funktionen nützlich, deren Parameterreihenfolge schwer verständlich ist.
match in echtem Code
Ersetzen Sie lange if/elseif-Ketten durch match, etwa für das Routing von HTTP-Methoden, die Zuordnung von Statuscodes und Entscheidungen anhand von enum-ähnlichen Werten.
<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
"GET" => new GetHandler(),
"POST" => new PostHandler(),
"DELETE" => new DeleteHandler(),
default => throw new InvalidArgumentException("Unsupported method"),
};Zusammenfassung
match ermöglicht eine strikte, vollständige Verzweigung ohne Fall-through. Benannte Argumente verbessern die Lesbarkeit am Aufrufort. Beide zählen zu den wichtigsten Verbesserungen in PHP 8.0.
Kurze Überprüfung
Was geschieht, wenn kein match-Zweig übereinstimmt und kein default vorhanden ist?
Häufig gestellte Fragen
Ist die Lektion „Match-Ausdruck und benannte Argumente“ kostenlos?
Ja — der vollständige Text von „Match-Ausdruck und benannte Argumente“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Match-Ausdruck und benannte Argumente“?
Ersetzen Sie ausführliche switch-Anweisungen durch match und verwenden Sie zur besseren Verständlichkeit benannte Argumente. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Match-Ausdruck und benannte Argumente“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Match-Ausdruck und benannte Argumente
- Nullsafe-Operator und Union-Typen
- Enumerationen (Enums)
- Fibers: Kooperative Nebenläufigkeit