Wyobraź sobie, że gotujesz skomplikowane danie. Masz przepis podzielony na kroki: „przygotuj warzywa”, „zrób sos”, „ugotuj makaron”. Każdy z tych kroków to zestaw mniejszych czynności. W programowaniu takimi gotowymi „mini-przepisami” są właśnie funkcje.
Funkcja to nazwany blok kodu, który wykonuje określone zadanie. Można go „wywołać” (uruchomić) w dowolnym miejscu programu, ile razy tylko chcemy, bez potrzeby kopiowania i wklejania tego samego kodu.
Dlaczego funkcje są tak ważne?
- Unikasz powtórzeń (zasada DRY – Don’t Repeat Yourself): Jeśli w 5 miejscach programu musisz sprawdzić, czy email jest poprawny, piszesz funkcję do walidacji raz i używasz jej 5 razy.
- Czytelność: Kod podzielony na małe, logiczne funkcje o opisowych nazwach (np.
wyslijEmail(),obliczPodatek()) jest o wiele łatwiejszy do zrozumienia. - Łatwość w zarządzaniu: Jeśli musisz zmienić sposób walidacji emaila, zmieniasz go tylko w jednym miejscu – wewnątrz funkcji.
1. Definiowanie i wywoływanie prostej funkcji
Składnia: function nazwaFunkcji() { // kod do wykonania }
Przykład: Stwórzmy plik funkcje.php i napiszmy funkcję, która wyświetla dzisiejszą datę.
<?php
// 1. Definiowanie funkcji
function wyswietlDate() {
echo "Dzisiaj jest: " . date("Y-m-d"); // date() to wbudowana funkcja PHP
}
// 2. Wywoływanie funkcji
echo "Witaj na stronie!<br>";
wyswietlDate(); // Uruchamiamy kod z wnętrza funkcji
echo "<br>Miłego dnia!";
?>Jak widzisz, kod wewnątrz wyswietlDate() wykonał się dopiero wtedy, gdy go wywołaliśmy.
2. Przekazywanie danych do funkcji (Argumenty)
Nasza funkcja jest na razie „ślepa” – nie wie nic o świecie zewnętrznym. Możemy przekazać jej dane, umieszczając zmienne w nawiasach. Nazywamy je argumentami lub parametrami.
Przykład: Stwórzmy funkcję, która wita konkretnego użytkownika.
<?php
// Funkcja przyjmuje jeden argument o nazwie $imie
function przywitaj($imie) {
echo "Cześć, $imie!";
}
// Wywołujemy funkcję, przekazując jej różne wartości
przywitaj("Anna"); // Wyświetli "Cześć, Anna!"
echo "<br>";
przywitaj("Piotr"); // Wyświetli "Cześć, Piotr!"
?>Dzięki argumentom nasza funkcja stała się uniwersalna!
3. Zwracanie wartości z funkcji (return)
Funkcje nie muszą niczego wyświetlać. Mogą przetworzyć dane i zwrócić wynik, który możemy przypisać do zmiennej. Do tego służy słowo kluczowe return.
return natychmiast kończy działanie funkcji i oddaje wynik.
Przykład: Stwórzmy funkcję, która oblicza pole kwadratu.
<?php
// Funkcja przyjmuje długość boku i ZWRACA wynik
function obliczPoleKwadratu($bok) {
$pole = $bok * $bok;
return $pole;
}
// Wywołujemy funkcję i przypisujemy jej wynik do zmiennej
$wynik = obliczPoleKwadratu(5);
echo "Pole kwadratu o boku 5 wynosi: $wynik"; // Wynik: 25
echo "<br>";
$innyWynik = obliczPoleKwadratu(10);
echo "Pole kwadratu o boku 10 wynosi: $innyWynik"; // Wynik: 100
?>4. Nowoczesne PHP: Deklarowanie typów
Aby nasz kod był jeszcze bardziej solidny i przewidywalny, w nowoczesnym PHP możemy (i powinniśmy!) określać, jakiego typu danych oczekuje argument i jakiego typu danych funkcja zwraca.
Przykład: Poprawmy naszą funkcję, dodając typowanie.
<?php
// Na początku pliku włączamy tryb ścisłego typowania
declare(strict_types=1);
// Określamy, że $bok musi być liczbą całkowitą (int)
// i że funkcja musi zwrócić liczbę całkowitą (int)
function obliczPoleKwadratu(int $bok): int {
return $bok * $bok;
}
$wynik = obliczPoleKwadratu(5); // Działa
echo $wynik;
// Ta linijka spowodowałaby błąd, bo "hej" nie jest liczbą całkowitą
// $blednyWynik = obliczPoleKwadratu("hej");
?>To świetna praktyka, która chroni przed wieloma błędami.
Podsumowanie Kursu i Gratulacje!
NIESAMOWITE! Dotarłeś do końca kursu podstaw PHP! To ogromne osiągnięcie.
Przeszedłeś drogę od zera do momentu, w którym potrafisz:
- Przechowywać dane w zmiennych i tablicach.
- Wykonywać operacje za pomocą operatorów.
- Podejmować decyzje za pomocą instrukcji if/elseif/else.
- Automatyzować zadania za pomocą pętli for i while.
- Przetwarzać listy danych pętlą foreach.
- Tworzyć interaktywne formularze i bezpiecznie przetwarzać dane.
- Porządkować swój kod w funkcje.
Masz teraz solidny fundament, który pozwala Ci zacząć budować własne, proste projekty i kontynuować naukę bardziej zaawansowanych koncepcji.