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ą
Processorz abstrakcyjną metodąprocess, która przyjmuje typcallablejako argument. - Implementacja klasy potomnej: Tworzymy klasę
DataProcessordziedziczącą poProcessori 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!