0Pricing
PHP Academy · Lekcja

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

  1. Wyrażenie match i argumenty nazwane
  2. Operator nullsafe i typy sum
  3. Wyliczenia (enumy)
  4. Fibers: współbieżność kooperacyjna
← Powrót do PHP Academy