Interfejsy a typy anonimowe
Założenie: Pokażemy, jak wykorzystać typy anonimowe w definicjach interfejsów w PHP, aby stworzyć bardziej elastyczne i specyficzne dla danych interfejsy.
Krok po kroku:
- Definicja interfejsu z typem anonimowym: Stworzymy interfejs reprezentujący prostokąt, gdzie wymiary są określone za pomocą typu anonimowego.
- Użycie interfejsu: Możemy teraz używać obiektu `$myRectangle` wszędzie tam, gdzie wymagany jest interfejs `Rectangle`.
interface Rectangle {
public function getArea(): float;
}
$rectangle = new class implements Rectangle {
public float $width;
public float $height;
public function __construct(float $width, float $height) {
$this->width = $width;
$this->height = $height;
}
public function getArea(): float {
return $this->width * $this->height;
}
};
$myRectangle = new $rectangle(5, 10);
echo $myRectangle->getArea(); // Wyświetli 50
Tutaj definiujemy interfejs `Rectangle` z metodą `getArea()`. Następnie, używając wyrażenia `new class`, tworzymy klasę anonimową implementującą ten interfejs. Klasa ta ma atrybuty `width` i `height` oraz metodę `getArea()` obliczającą pole prostokąta.
function calculateArea(Rectangle $rect): float {
return $rect->getArea();
}
echo calculateArea($myRectangle); // Wyświetli 50
Funkcja `calculateArea()` przyjmuje obiekt implementujący interfejs `Rectangle` i zwraca jego pole. To pokazuje elastyczność użycia typów anonimowych w interfejsach.
Ten przykład pokazuje podstawowe zastosowanie typów anonimowych w definicjach interfejsów w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi zastosowaniami!