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; // 7Wartoś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] startedPrzekazywanie 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 — changedWiele 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); // 5Hoisting 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-sensitiveFunkcje 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); // 120Deklaracje 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); // 42Funkcje 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: 9Szybkie 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
- Definiowanie i wywoływanie funkcji
- Parametry domyślne i wariadyczne
- Zakres zmiennych: lokalny i globalny
- Funkcje anonimowe i domknięcia