0Pricing
PHP Academy · Lekcja

Definiowanie i wywoływanie funkcji

Tworzenie własnych funkcji z parametrami i wartościami zwracanymi.

Definiowanie i wywoływanie funkcji 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.

Dlaczego funkcje?

Funkcje pozwalają wydzielać wielokrotnie używaną logikę i nadawać jej nazwę, dzięki czemu można wywoływać ją wiele razy bez powtarzania kodu. Korzyści:

  • Unikanie powtórzeń (zasada DRY)
  • Łatwiejsze testowanie i debugowanie
  • Kod, który sam wyjaśnia swoje działanie

Definiowanie funkcji

Użyj słowa kluczowego function, nazwy, opcjonalnych parametrów i treści funkcji:

<?php
function greet(string $name): string {
    return 'Hello, ' . $name . '!';
}

echo greet('Alice'); // Hello, Alice!

Parametry i argumenty

Parametry to nazwy zmiennych w definicji, a argumenty to rzeczywiste wartości przekazywane podczas wywołania:

<?php
function add(int $a, int $b): int {
    return $a + $b;  // $a and $b are parameters
}

$sum = add(3, 4);  // 3 and 4 are arguments
echo $sum;  // 7

Wartości zwracane

Użyj return, aby przekazać wartość z powrotem do miejsca wywołania. Funkcja bez instrukcji return zwraca NULL:

<?php
function square(float $n): float {
    return $n * $n;
}

function logMessage(string $msg): void {
    echo '[LOG] ' . $msg . PHP_EOL;
    // void functions must not return a value
}

echo square(4);        // 16
logMessage('started'); // [LOG] started

Przekazywanie przez wartość a przez referencję

Domyślnie PHP przekazuje argumenty przez wartość (kopię). Poprzedź argument znakiem &, aby przekazać go przez referencję:

<?php
function doubleByValue(int $n): void {
    $n *= 2;  // changes only the local copy
}

function doubleByRef(int &$n): void {
    $n *= 2;  // changes the original
}

$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged

doubleByRef($x);
echo $x; // 10 — changed

Wiele punktów zwracania

Funkcja może zawierać wiele instrukcji return, aby umożliwić wcześniejsze zakończenie działania:

<?php
function divide(float $a, float $b): ?float {
    if ($b === 0.0) {
        return null;  // early return on error
    }
    return $a / $b;
}

var_dump(divide(10, 0));   // NULL
echo divide(10, 2);         // 5

Hoisting funkcji

Funkcje PHP są dostępne w całym pliku niezależnie od miejsca ich zdefiniowania — w przeciwieństwie do JavaScript większość funkcji PHP NIE musi być zadeklarowana przed użyciem:

<?php
echo double(5);  // 10 — works even though double is defined below

function double(int $n): int {
    return $n * 2;
}

// Exception: functions inside conditionals ARE position-sensitive

Funkcje rekurencyjne

Funkcja, która wywołuje samą siebie, jest rekurencyjna. Zawsze należy zapewnić przypadek bazowy, aby uniknąć nieskończonej rekurencji:

<?php
function factorial(int $n): int {
    if ($n <= 1) return 1;  // base case
    return $n * factorial($n - 1);  // recursive call
}

echo factorial(5);  // 120

Deklaracje typów

PHP 7+ obsługuje deklaracje typów parametrów i wartości zwracanych. PHP 8 dodał typy mixed, never oraz typy przecięcia:

<?php
declare(strict_types=1);

function clamp(int $value, int $min, int $max): int {
    return max($min, min($max, $value));
}

echo clamp(150, 0, 100);  // 100
echo clamp(-5,  0, 100);  // 0
echo clamp(42,  0, 100);  // 42

Funkcje nazwane a wbudowane

PHP zawiera tysiące wbudowanych funkcji. W dowolnym momencie można sprawdzić, czy dana funkcja istnieje:

<?php
if (function_exists('mb_strlen')) {
    echo mb_strlen('こんにちは');  // 5 — correct multi-byte length
} else {
    echo strlen('こんにちは');      // 15 — byte count, wrong for UTF-8
}

Zwracanie wielu wartości

Zwracaj wiele wartości, zwracając tablicę i rozpakowując ją w miejscu wywołania:

<?php
function minMax(array $arr): array {
    return [min($arr), max($arr)];
}

[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max";  // Min: 1, Max: 9

Szybkie sprawdzenie

Co zwraca funkcja PHP bez jawnej instrukcji return?

Podsumowanie: funkcje

Najważniejsze informacje o funkcjach PHP:

  • Definiuj je za pomocą function name(params): returnType
  • Przekazuj argumenty przez wartość (domyślnie) albo przez referencję za pomocą &
  • Funkcje bez instrukcji return zwracają NULL
  • Rekurencja wymaga przypadku bazowego
  • Funkcje są dostępne w całym pliku (hoisting)

Dalej: parametry domyślne i wariadyczne.

Często zadawane pytania

Czy lekcja „Definiowanie i wywoływanie funkcji” jest bezpłatna?

Tak — pełny tekst „Definiowanie i wywoływanie funkcji” 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 „Definiowanie i wywoływanie funkcji”?

Tworzenie własnych funkcji z parametrami i wartościami zwracanymi. Ć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 „Definiowanie i wywoływanie funkcji”?

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