Oto trzecia część naszej podróży z PHP! Tym razem skupimy się na jednym z kluczowych elementów, jakim są funkcje. Dlaczego są tak ważne? Otóż, dzięki nim nasz kod staje się bardziej uporządkowany i łatwiejszy w zarządzaniu. Funkcje pozwalają nam na wielokrotne wykorzystywanie tego samego fragmentu kodu, eliminując potrzebę jego ciągłego powtarzania. W tym artykule, który jest skierowany głównie do uczniów technikum informatycznego, wprowadzimy Was w świat funkcji w PHP. Pokażemy, jak je definiować, wywoływać, omówimy zakres działania zmiennych wewnątrz funkcji, parametry, które możemy do nich przekazać, a także wartości domyślne. Nie zabraknie również przykładów praktycznych oraz omówienia wybranych funkcji wbudowanych, które są niezwykle przydatne w codziennej pracy programisty. Gotowi? Zaczynamy!
1. Definiowanie i Wywoływanie Funkcji
Definiowanie funkcji w PHP jest stosunkowo proste i odbywa się za pomocą słowa kluczowego function
, po którym następuje nazwa funkcji oraz zestaw nawiasów, w których można określić parametry. Ciało funkcji zawiera kod, który ma zostać wykonany po jej wywołaniu.
Przykład:
function powitanie() {
echo "Witaj w świecie PHP!";
}
Wywoływanie funkcji odbywa się poprzez podanie jej nazwy wraz z nawiasami. Jeśli funkcja przyjmuje parametry, w nawiasach należy podać odpowiednie argumenty.
Zadanie: Napisz funkcję, która wyświetla powitanie z imieniem użytkownika.
Rozwiązanie:
function powitanie($imie) {
echo "Witaj, " . $imie . "!";
}
powitanie("Janek"); // Wywołanie naszej funkcji
2. Zakres Zmiennych
Zakres zmiennych odnosi się do obszaru kodu, w którym zmienne są dostępne. W PHP, zmienne zdefiniowane poza funkcją mają zakres globalny, a te zdefiniowane wewnątrz funkcji – lokalny.
Zadanie: Zilustruj różnicę między zmienną globalną a lokalną.
Rozwiązanie:
$x = 5; // Zmienna globalna
function testZakresu() {
$y = 10; // Zmienna lokalna
echo $y;
}
testZakresu();
// echo $y; // takie wywołanie zmiennej $y pokaże nam błąd, gdyż $y jest zmienną lokalną zawartą wewnątrz funkcji.
3. Parametry Funkcji i Wartości Domyślne
Funkcje w PHP mogą przyjmować parametry, które pozwalają na przekazanie do funkcji danych z zewnątrz. Parametry te mogą mieć również wartości domyślne, co pozwala na wywołanie funkcji bez konieczności podawania argumentów dla wszystkich parametrów.
Zadanie: Napisz funkcję, która dodaje dwie liczby. Drugi parametr funkcji powinien mieć wartość domyślną równą 0.
Rozwiązanie:
function dodaj($liczba1, $liczba2 = 0) {
return $liczba1 + $liczba2;
}
echo dodaj(5, 3); // Wyświetli 8
echo dodaj(5); // Wyświetli 5
4. Funkcje Wbudowane
PHP posiada szeroki zakres funkcji wbudowanych, które wykonują różnorodne zadania, od manipulacji ciągami znaków po operacje na plikach i obsługę błędów.
Zadanie: Użyj funkcji str_replace
do zastąpienia słowa „świat” słowem „PHP” w ciągu znaków „Witaj, świat!”. Rozwiązanie:
$tekst = "Witaj, świat!";
$nowyTekst = str_replace("świat", "PHP", $tekst);
echo $nowyTekst; // Wyświetli "Witaj, PHP!"
Funkcje w PHP są potężnym narzędziem, pozwalającym na efektywną organizację kodu, unikanie powtórzeń oraz łatwe zarządzanie złożonością projektów. Przez zrozumienie i wykorzystanie funkcji, parametrów, zakresów zmiennych oraz funkcji wbudowanych, studenci mogą znacząco poprawić jakość i efektywność swojego kodu.
5. Przykłady przydatnych wbudowanych funkcji w PHP
PHP oferuje szeroką gamę funkcji wbudowanych, które są nieocenioną pomocą w codziennej pracy programisty. Oto lista najbardziej przydatnych i najczęściej wykorzystywanych funkcji wbudowanych w PHP:
- Manipulacja ciągami znaków
strlen($string)
– Zwraca długość ciągu znaków.- echo strlen(„Witaj świecie”); // Wyświetli 12
str_replace($search, $replace, $subject)
– Zastępuje wszystkie wystąpienia ciągu szukanego ciągiem zastępującym.- echo str_replace(„świat”, „PHP”, „Witaj świecie”); // Wyświetli „Witaj PHP”
strpos($haystack, $needle)
– Znajduje pozycję pierwszego wystąpienia podciągu w ciągu.- echo strpos(„Witaj świecie”, „świecie”); // Wyświetli 6
strtolower($string)
– Konwertuje wszystkie znaki w ciągu na małe litery.- echo strtolower(„Witaj ŚWIECIE”); // Wyświetli „witaj świecie”
strtoupper($string)
– Konwertuje wszystkie znaki w ciągu na wielkie litery.- echo strtoupper(„witaj świecie”); // Wyświetli „WITAJ ŚWIECIE”
substr($string, $start, $length)
– Zwraca część ciągu.- echo substr(„Witaj świecie”, 6, 7); // Wyświetli „świecie”
- Manipulacja tablicami
array_merge($array1, $array2)
– Scala jedną lub więcej tablic.print_r(array_merge([1, 2, 3], [4, 5, 6])); // Wyświetli Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
array_pop(&$array)
– Usuwa ostatni element tablicy.$arr = [1, 2, 3];
array_pop($arr);
print_r($arr); // Wyświetli Array ( [0] => 1 [1] => 2 )
array_push(&$array, $value1, $value2, ...)
– Dodaje jeden lub więcej elementów na końcu tablicy.$arr = [1, 2];
array_push($arr, 3, 4);
print_r($arr); // Wyświetli Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
array_shift(&$array)
– Usuwa pierwszy element tablicy i zwraca go.$arr = [1, 2, 3];
array_shift($arr);
print_r($arr); // Wyświetli Array ( [0] => 2 [1] => 3 )
array_unshift(&$array, $value1, $value2, ...)
– Dodaje jeden lub więcej elementów na początku tablicy.$arr = [2, 3];
array_unshift($arr, 0, 1);
print_r($arr); // Wyświetli Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
in_array($needle, $haystack)
– Sprawdza, czy w tablicy znajduje się dany element.echo in_array(2, [1, 2, 3]); // Wyświetli 1 (true)
sort(&$array)
– Sortuje tablicę.$arr = [3, 1, 2];
sort($arr);
print_r($arr); // Wyświetli Array ( [0] => 1 [1] => 2 [2] => 3 )
- Obsługa plików
fopen($filename, $mode)
– Otwiera plik lub URL.$file = fopen("test.txt", "w");
fwrite($file, "Witaj świecie");
fclose($file);
fclose($handle)
– Zamyka otwarty wskaźnik pliku.$file = fopen("przykladowy_plik.txt", "w");
fwrite($file, "Witaj świecie w PHP!");
fclose($file);
fwrite($handle, $string)
– Zapisuje ciąg znaków do pliku.$file = fopen("przykladowy_plik.txt", "w");
fwrite($file, "To jest test.");
fclose($file);
fread($handle, $length)
– Odczytuje plik do określonej długości.$file = fopen("przykladowy_plik.txt", "r");
$content = fread($file, filesize("przykladowy_plik.txt"));
fclose($file);
echo $content;
file_get_contents($filename)
– Odczytuje cały plik do ciągu.file_put_contents("test.txt", "Witaj świecie");
echo file_get_contents("test.txt"); // Wyświetli "Witaj świecie"
file_put_contents($filename, $data)
– Zapisuje ciąg do pliku.
- Obsługa czasu i daty
date($format, $timestamp)
– Formatuje datę/czas.- echo date(„Y-m-d”); // Wyświetli bieżącą datę w formacie RRRR-MM-DD
time()
– Zwraca bieżący czas jako znacznik czasu Unix.- echo time(); // Wyświetli bieżący znacznik czasu Unix
echo strtotime(„+1 day”, time()); // Wyświetli znacznik czasu Unix dla jutra
- echo time(); // Wyświetli bieżący znacznik czasu Unix
strtotime($time)
– Przekształca dowolny opis tekstowy daty/czasu na znacznik czasu Unix.echo strtotime("now"), "\n"; // Zwraca bieżący znacznik czasu Unix
echo strtotime("10 September 2000"), "\n"; // Zwraca znacznik czasu Unix dla podanej daty
echo strtotime("+1 day"), "\n"; // Zwraca znacznik czasu Unix dla dnia następującego po bieżącym dniu
echo strtotime("+1 week"), "\n"; // Zwraca znacznik czasu Unix dla tygodnia następującego po bieżącym tygodniu
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n"; // Zwraca znacznik czasu Unix dla określonego przesunięcia czasowego od teraz
echo strtotime("next Thursday"), "\n"; // Zwraca znacznik czasu Unix dla najbliższego czwartku od dzisiaj
echo strtotime("last Monday"), "\n"; // Zwraca znacznik czasu Unix dla ostatniego poniedziałku przed dzisiaj
- Funkcje matematyczne
rand($min, $max)
– Generuje losową liczbę.- echo rand(1, 10); // Wyświetli losową liczbę między 1 a 10
round($val, $precision)
– Zaokrągla liczbę do określonej precyzji.- echo round(3.14159, 2); // Wyświetli 3.14
ceil($value)
– Zaokrągla wartości w górę.echo ceil(4.3); // Wyświetli 5
echo ceil(9.999); // Wyświetli 10
echo ceil(-3.14); // Wyświetli -3
floor($value)
– Zaokrągla wartości w dół.echo floor(4.3); // Wyświetli 4
echo floor(9.999); // Wyświetli 9
echo floor(-3.14); // Wyświetli -4
- Obsługa JSON
json_encode($value)
– Koduje wartość do formatu JSON.$json = json_encode(["imie" => "Jan", "wiek" => 30]);
print_r(json_decode($json, true)); // Wyświetli skojarzoną tablicę
json_decode($json)
– Dekoduje ciąg JSON.$json = '{"imie": "Jan", "wiek": 30}';
$decoded = json_decode($json);
// Dostęp do właściwości obiektu
echo $decoded->imie; // Wyświetli "Jan"
echo $decoded->wiek; // Wyświetli 30
// Aby uzyskać tablicę asocjacyjną zamiast obiektu, ustaw drugi argument na true
$decodedArray = json_decode($json, true);
// Dostęp do danych jako tablicy asocjacyjnej
echo $decodedArray['imie']; // Wyświetli "Jan"
echo $decodedArray['wiek']; // Wyświetli 30
- Obsługa błędów
error_reporting($level)
– Ustawia poziom raportowania błędów.// Wyłącza raportowanie wszystkich błędów
error_reporting(0);
// Raportuje tylko błędy wykonania
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Raportuje wszystkie błędy PHP (zalecane podczas rozwoju)
error_reporting(E_ALL);
Funkcjaerror_reporting
pozwala kontrolować, które błędy PHP są wyświetlane. Można ją wykorzystać do ukrycia ostrzeżeń i notatek podczas produkcji lub do pokazywania wszystkich błędów podczas fazy rozwoju.
set_error_handler($callback)
– Ustawia funkcję obsługi błędów użytkownika.function mojObslugaBledow($errno, $errstr, $errfile, $errline) {
echo "<b>Błąd:</b> [$errno] $errstr<br>";
echo " Błąd w linii $errline w pliku $errfile<br>";
echo "PHP " . PHP_VERSION . " (" . PHP_OS . ")<br>";
die();
}
// Ustawienie własnej funkcji do obsługi błędów
set_error_handler("mojObslugaBledow");
// Wygenerowanie błędu (dla testu)
echo($test);
Używając funkcji set_error_handler
, można zdefiniować własną funkcję, która zostanie wywołana zamiast standardowego mechanizmu obsługi błędów PHP. Pozwala to na niestandardowe obsługiwanie błędów, na przykład logowanie błędów do pliku zamiast wyświetlania ich użytkownikowi lub wysyłanie powiadomień e-mail w przypadku krytycznych błędów.
Te dwie funkcje, są kluczowe dla zaawansowanej obsługi błędów w aplikacjach PHP, pozwalając na większą kontrolę nad tym, jak błędy są raportowane i obsługiwane.
Podsumowanie
To tylko niektóre z funkcji wbudowanych w PHP, które czynią ten język tak potężnym narzędziem dla programistów. Każda z nich ma swoje specyficzne zastosowania i może znacznie przyspieszyć oraz ułatwić proces tworzenia aplikacji webowych.