Traits
Traits
Enumeraties kunnen gebruikmaken van traits, die zich hetzelfde zullen gedragen als in klassen.
De voorwaarde is dat traits in een enum geen properties mogen bevatten.
Ze mogen alleen methoden, statische methoden en constanten bevatten. Een trait met properties zal resulteren in een fatale fout.
use
<?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',
};
}
}
?>