0Pricing
PHP Academy · Lekcja

Parametry domyślne i wariadyczne

Używanie wartości domyślnych i argumentów wariadycznych w funkcjach PHP.

Parametry domyślne i wariadyczne to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 2 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.

Wartości domyślne parametrów

Wartości domyślne pozwalają wywołującym pomijać argumenty. Wartość domyślna jest używana, gdy argument nie zostanie przekazany:

<?php
function createUser(string $name, string $role = 'viewer'): string {
    return "$name ($role)";
}

echo createUser('Alice');          // Alice (viewer)
echo createUser('Bob', 'admin');   // Bob (admin)

Zasady dotyczące wartości domyślnych

Ważne zasady dotyczące parametrów domyślnych:

  • Parametry z wartościami domyślnymi muszą występować po parametrach wymaganych
  • Wartości domyślne muszą być stałymi wyrażeniami — nie mogą być wywołaniami funkcji ani zmiennymi
  • Argumenty nazwane w PHP 8 łagodzą wymaganie dotyczące kolejności

Parametry dopuszczające NULL

Użyj ?type, aby dopuścić wartość NULL jako prawidłowy argument, z wartością NULL jako domyślną:

<?php
function findUser(?int $id = null): string {
    if ($id === null) {
        return 'Searching all users';
    }
    return "User #$id";
}

echo findUser();    // Searching all users
echo findUser(42);  // User #42

Funkcje wariadyczne z ...

Umieść ... przed parametrem, aby przyjmować zmienną liczbę argumentów w postaci tablicy:

<?php
function sum(int ...$numbers): int {
    return array_sum($numbers);
}

echo sum(1, 2, 3);        // 6
echo sum(10, 20, 30, 40); // 100

Parametry wymagane i wariadyczne

Można łączyć parametry wymagane z parametrem wariadycznym umieszczonym na końcu:

<?php
function logMessage(string $level, string ...$messages): void {
    foreach ($messages as $msg) {
        echo "[$level] $msg" . PHP_EOL;
    }
}

logMessage('INFO', 'App started', 'Config loaded');

Operator rozpakowywania przy wywołaniu

Użyj ... podczas wywoływania funkcji, aby rozpakować tablicę na pojedyncze argumenty:

<?php
function add3(int $a, int $b, int $c): int {
    return $a + $b + $c;
}

$args = [1, 2, 3];
echo add3(...$args);  // 6

$extra = [4, 5];
echo add3(1, ...$extra);  // 10

Argumenty nazwane (PHP 8)

Argumenty nazwane pozwalają przekazywać wartości według nazw parametrów, niezależnie od ich kolejności:

<?php
function createTag(string $tag, string $content, string $class = ''): string {
    $cls = $class ? " class=\"$class\"" : '';
    return "<$tag$cls>$content</$tag>";
}

// Skip $class, pass $content by name
echo createTag(content: 'Hello', tag: 'p');
// <p>Hello</p>

Argumenty nazwane z funkcjami wbudowanymi

Argumenty nazwane działają również z wbudowanymi funkcjami PHP:

<?php
$arr = [3, 1, 4, 1, 5];

// Traditional positional
$result1 = array_slice($arr, 1, 3);

// Named arguments
$result2 = array_slice(array: $arr, offset: 1, length: 3);

print_r($result1); // [1, 4, 1]

Starsze użycie func_get_args()

Przed wprowadzeniem składni wariadycznej w PHP 5.6 do uzyskiwania dostępu do wszystkich argumentów używano func_get_args(). Można ją spotkać w starszym kodzie:

<?php
function legacySum(): int {
    $args = func_get_args();
    return array_sum($args);
}

echo legacySum(1, 2, 3, 4);  // 10
// Modern: use int ...$numbers instead

Parametr wariadyczny z deklaracją typu

Połącz deklaracje typów z parametrami wariadycznymi, aby wymusić ścisłą kontrolę danych wejściowych:

<?php
declare(strict_types=1);

function joinStrings(string $sep, string ...$parts): string {
    return implode($sep, $parts);
}

echo joinStrings('-', 'a', 'b', 'c');  // a-b-c
// joinStrings('-', 'a', 42); // TypeError in strict mode

Łączenie wartości domyślnych i argumentów nazwanych

Argumenty nazwane i wartości domyślne współpracują ze sobą, zapewniając maksymalną elastyczność:

<?php
function sendEmail(
    string $to,
    string $subject,
    string $body = '',
    bool   $html  = false
): bool {
    // simulate send
    return true;
}

// Skip $body, pass $html by name
sendEmail('a@b.com', 'Hi', html: true);

Szybki test

Co robi operator ... w definicji funkcji PHP?

Podsumowanie: parametry domyślne i wariadyczne

Podsumowanie:

  • Wartości domyślne pozwalają definiować parametry opcjonalne
  • Parametry z wartościami domyślnymi umieszcza się po parametrach wymaganych
  • ?type dopuszcza wartość NULL z opcjonalną wartością domyślną
  • ...$args zbiera argumenty wariadyczne do tablicy
  • Operator rozpakowywania ...$arr rozwija tablicę w miejscu wywołania
  • Argumenty nazwane (PHP 8) przekazują wartości według nazw, a nie pozycji

Często zadawane pytania

Czy lekcja „Parametry domyślne i wariadyczne” jest bezpłatna?

Tak — pełny tekst „Parametry domyślne i wariadyczne” 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 „Parametry domyślne i wariadyczne”?

Używanie wartości domyślnych i argumentów wariadycznych w funkcjach PHP. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Parametry domyślne i wariadyczne”?

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. Definiowanie i wywoływanie funkcji
  2. Parametry domyślne i wariadyczne
  3. Zakres zmiennych: lokalny i globalny
  4. Funkcje anonimowe i domknięcia
← Powrót do PHP Academy