Dataczwartek, 13 sierpnia 2026 Czas17:39:40
← Aplikacje internetowe (PHP)

Lekcja 6. Funkcje w PHP

Średni

Po co się tego uczymy?

Gdy ten sam obliczenie ceny po rabacie albo walidacja formularza potrzebne jest w pięciu różnych miejscach strony, nie przepisujesz kodu pięć razy — piszesz go raz, jako funkcję, i wywołujesz w każdym potrzebnym miejscu.

Teoria

Funkcja to nazwany fragment kodu, który możesz wywołać wielokrotnie, zamiast powtarzać ten sam kod w wielu miejscach strony.

Składnia:
function nazwaFunkcji($parametr1, $parametr2) {
// kod funkcji
return $wynik;
}

Parametry mogą mieć wartości domyślne: function powitanie($imie = "Gościu") { ... } — jeśli nie podasz argumentu przy wywołaniu, PHP użyje wartości domyślnej.

Funkcja może, ale nie musi, zwracać wartość przez return. Funkcje bez return (albo z pustym return;) po prostu coś robią (np. wypisują tekst) i kończą działanie.

Dobrze napisane funkcje nazywasz czasownikiem opisującym, co robią (obliczCene, sprawdzWiek, wyswietlProdukt) — to jedna z podstawowych "dobrych praktyk" czystego kodu.

Przykład z życia

Funkcja obliczającą cenę po rabacie może być użyta zarówno na stronie produktu, jak i w podsumowaniu koszyka (Lekcja 18) — napisana raz, poprawnie i przetestowana, działa wszędzie tak samo.

Kod (PHP)

<?php
function obliczCenePoRabacie($cena, $procentRabatu) {
    $rabat = $cena * ($procentRabatu / 100);
    return $cena - $rabat;
}

function powitanie($imie = "Gościu") {
    echo "Witaj, $imie!<br>";
}

// wywołania funkcji
powitanie("Kasia");
powitanie(); // użyje wartości domyślnej "Gościu"

$cenaKoncowa = obliczCenePoRabacie(100, 20);
echo "Cena po rabacie: " . $cenaKoncowa . " zł";

Komentarz i wyjaśnienie kodu

Funkcja obliczCenePoRabacie przyjmuje dwa parametry i ZWRACA wynik przez return — dzięki temu możesz zapisać go do zmiennej $cenaKoncowa i użyć dalej. Funkcja powitanie ma parametr z wartością domyślną ("Gościu") — w drugim wywołaniu powitanie() bez argumentu PHP sam użyje tej domyślnej wartości. Zwróć uwagę: powitanie() nic nie zwraca (brak return), tylko od razu wypisuje tekst przez echo — to różnica między funkcją, która "robi coś", a funkcją, która "oblicza i zwraca wynik".

Ćwiczenie samodzielne

Napisz funkcję obliczVAT($cenaNetto), która zwraca cenę brutto po doliczeniu 23% VAT, i wywołaj ją dla trzech różnych cen.

Zadania do pracy własnej

  1. Napisz funkcję czyPelnoletni($wiek), która zwraca true lub false, i wywołaj ją dla kilku różnych wartości wieku.

  2. Napisz funkcję formatujCene($cena), która zwraca tekst w formacie "X,XX zł" (podpowiedź: number_format()), i użyj jej do wypisania cen trzech produktów.

  3. Napisz funkcję ocenFilmu($ocena), która na podstawie liczby od 1 do 10 zwraca słowny komentarz ("Arcydzieło", "Bardzo dobry", "Przeciętny", "Słaby") — użyj wewnątrz niej instrukcji warunkowej z Lekcji 3 — a następnie zastosuj ją do listy pięciu filmów z ocenami zapisanej w tablicy z Lekcji 5.

Typowe błędy

Częsty błąd to oczekiwanie wyniku z funkcji, która nic nie zwraca (brak return) — zmienna przypisana z takiego wywołania będzie miała wartość null. Drugi błąd: pomylenie kolejności parametrów przy wywołaniu funkcji z wieloma argumentami. Trzeci: próba użycia zmiennej zdefiniowanej WEWNĄTRZ funkcji poza jej ciałem — zmienne lokalne funkcji nie są widoczne na zewnątrz (tzw. zasięg zmiennych).

Nawiązanie do egzaminu zawodowego

To realizacja efektu INF.03.5.2.6 ("stosuje funkcje oraz wybrane biblioteki skryptowych języków programowania") — umiejętność pisania własnych funkcji jest też podstawą "czystego kodu", który jest oceniany w części praktycznej egzaminu.