Traits
Оновлено: 09.05.2023
Перерахування можуть використовувати ознаки, які поводитимуться так само, як і у класах. Застереженням є те, що риси, які використовуються у зчисленні, не повинні містити властивостей. Вони можуть містити лише методи та статичні методи. Риса з властивостями призведе до фатальної помилки.
<?php
interface Colorful
{
public function color(): string;
}
trait Rectangle
{
public function shape(): string {
return "Rectangle";
}
}
enum Suit implements Colorful
{
use Rectangle;
case Hearts;
case Diamonds;
case Clubs;
case Spades;
public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Red',
Suit::Clubs, Suit::Spades => 'Black',
};
}
}
?>