Pętle a programowanie funkcyjne
Założenie: Porównamy tradycyjne pętle w PHP z funkcjami array_map i array_filter, ilustrując zalety programowania funkcyjnego.
Krok po kroku:
- Przykład z pętlą `for`: Obliczymy kwadraty liczb z tablicy.
- Przykład z `array_map`: To samo zadanie, ale z użyciem funkcji `array_map`.
- Przykład z `array_filter`: Wybierzemy tylko parzyste liczby z tablicy.
$numbers = [1, 2, 3, 4, 5];
$squares = [];
for ($i = 0; $i < count($numbers); $i++) {
$squares[] = $numbers[$i] * $numbers[$i];
}
print_r($squares); // Wyświetli: Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
Ten kod iteruje po tablicy `$numbers` i oblicza kwadrat każdej liczby, zapisując wynik do tablicy `$squares`.
$numbers = [1, 2, 3, 4, 5];
$squares = array_map(function ($number) {
return $number * $number;
}, $numbers);
print_r($squares); // Wyświetli: Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
Funkcja `array_map` stosuje anonimową funkcję (closure) do każdego elementu tablicy `$numbers`, zwracając nową tablicę `$squares` z wynikami.
$numbers = [1, 2, 3, 4, 5, 6];
$evenNumbers = array_filter($numbers, function ($number) {
return $number % 2 == 0;
});
print_r($evenNumbers); // Wyświetli: Array ( [1] => 2 [3] => 4 [5] => 6 )
Funkcja `array_filter` filtruje tablicę `$numbers`, pozostawiając tylko elementy spełniające warunek określony w anonimowej funkcji (czyli liczby parzyste).
Podsumowanie: Ten przykład pokazał podstawowe różnice między pętlami a funkcjami programowania funkcyjnego w PHP. `array_map` i `array_filter` często prowadzą do bardziej zwięzłego i czytelnego kodu. Zachęcamy do dalszego zgłębiania tych technik!