Klasy abstrakcyjne a typy callable
Założenie: Pokażemy, jak wykorzystać typ callable
w definicji klasy abstrakcyjnej, aby zmusić klasy potomne do implementacji metod przyjmujących funkcje jako argumenty.
Krok po kroku:
- Definicja klasy abstrakcyjnej: Tworzymy klasę abstrakcyjną
Processor
z abstrakcyjną metodąprocess
, która przyjmuje typcallable
jako argument. - Implementacja klasy potomnej: Tworzymy klasę
DataProcessor
dziedziczącą poProcessor
i implementującą metodęprocess
. - Użycie klasy i funkcji zwrotnej: Tworzymy anonimową funkcję i używamy jej z klasą
DataProcessor
.
Tutaj definiujemy klasę abstrakcyjną Processor
z abstrakcyjną metodą process
. Metoda ta oczekuje jako argumentu funkcji (lub metody) – callable
.
1, 'b' => 2];
return $callback($data);
}
}
?>
Klasa DataProcessor
dziedziczy po Processor
i implementuje metodę process
. Metoda ta przyjmuje funkcję zwrotną ($callback
), wykonuje ją z danymi i zwraca wynik.
process(function($data) {
return array_sum($data);
});
echo "Suma elementów tablicy: " . $result; // Wyświetli: Suma elementów tablicy: 3
?>
Tworzymy obiekt DataProcessor
i przekazujemy do metody process
anonimową funkcję, która sumuje elementy tablicy. Wynik jest następnie wyświetlany.
Ten przykład pokazuje podstawowe wykorzystanie typu callable
w klasach abstrakcyjnych w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi typami funkcji zwrotnych!