Wyrażenie match i argumenty nazwane
Zastępuj rozwlekłe instrukcje switch wyrażeniem match i używaj argumentów nazwanych dla większej czytelności
Wyrażenie match i argumenty nazwane to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.
Wyrażenie match
PHP 8.0 wprowadził match — zwięzłą alternatywę dla switch, która używa ścisłego porównania (===) i zwraca wartość.
match a switch
Najważniejsze różnice: match używa ścisłego porównania, nie przechodzi automatycznie do kolejnych gałęzi i jest wyrażeniem (zwraca wartość).
<?php
$status = 2;
$label = match($status) {
1 => "active",
2 => "inactive",
3 => "banned",
default => "unknown",
};
echo $label; // "inactive"Wiele warunków w jednej gałęzi
Wiele wartości match należy oddzielić przecinkami, aby obsłużyć je w ten sam sposób.
<?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 zgłasza wyjątek przy braku dopasowania
Jeśli żadna gałąź nie pasuje i nie ma elementu default, PHP zgłasza UnhandledMatchError — w przeciwieństwie do switch, który po prostu kontynuuje działanie.
match jako wyrażenie
Ponieważ match zwraca wartość, można używać go bezpośrednio — jako argumentu funkcji, w instrukcji return lub wewnątrz interpolowanego ciągu znaków.
<?php
echo "Status: ".match($active) {
true => "ON",
false => "OFF",
};Argumenty nazwane
Argumenty nazwane w PHP 8.0 pozwalają przekazywać argumenty do funkcji według nazw parametrów, w dowolnej kolejności.
<?php
function makeTag(string $tag, string $content, string $class = ""): string {
return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");Zalety argumentów nazwanych
Argumenty nazwane poprawiają czytelność funkcji z wieloma parametrami, pozwalają pomijać opcjonalne parametry i wyjaśniają znaczenie poszczególnych wartości.
Argumenty nazwane z funkcjami wbudowanymi
Argumenty nazwane działają również z wbudowanymi funkcjami PHP.
<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);Łączenie argumentów nazwanych i pozycyjnych
Można łączyć argumenty pozycyjne i nazwane, ale argumenty nazwane muszą występować po pozycyjnych.
<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");Argumenty nazwane w array_map
Argumenty nazwane są szczególnie przydatne w przypadku wariadycznych funkcji wbudowanych, które mają mylącą kolejność parametrów.
match w rzeczywistym kodzie
Długie łańcuchy if/elseif można zastąpić match w routingu metod HTTP, mapowaniu kodów statusu i decyzjach opartych na wartościach przypominających enumy.
<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
"GET" => new GetHandler(),
"POST" => new PostHandler(),
"DELETE" => new DeleteHandler(),
default => throw new InvalidArgumentException("Unsupported method"),
};Podsumowanie
match zapewnia ścisłe i wyczerpujące rozgałęzianie bez automatycznego przechodzenia do kolejnych gałęzi. Argumenty nazwane poprawiają czytelność miejsca wywołania. Oba rozwiązania są istotnymi usprawnieniami w PHP 8.0.
Szybkie sprawdzenie
Co się dzieje, gdy żadna gałąź match nie pasuje i nie ma elementu default?
Często zadawane pytania
Czy lekcja „Wyrażenie match i argumenty nazwane” jest bezpłatna?
Tak — pełny tekst „Wyrażenie match i argumenty nazwane” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wyrażenie match i argumenty nazwane”?
Zastępuj rozwlekłe instrukcje switch wyrażeniem match i używaj argumentów nazwanych dla większej czytelności Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Wyrażenie match i argumenty nazwane”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wyrażenie match i argumenty nazwane
- Operator nullsafe i typy sum
- Wyliczenia (enumy)
- Fibers: współbieżność kooperacyjna