Sayılamalar, sınıflardaki gibi davranan niteliklerden yararlanabilir. Ancak, bir sayılama içinde kullanılan niteliklerin özelliklerinin olmamasına dikkat edilmelidir; sadece yöntemler ve statik yöntemler içerebilir. Özellikleri olan bir nitelik ölümcül hata ile sonuçlanır.
<?php
interface Renkli
{
public function renk(): string;
}
trait Dörtgen
{
public function kesim(): string {
return "Dörtgen";
}
}
enum Deste implements Renkli
{
use Dörtgen;
case Kupalar;
case Karolar;
case Sinekler;
case Maçalar;
public function renk(): string
{
return match($this) {
Deste::Kupalar, Deste::Karolar => 'Kırmızı',
Deste::Sinekler, Deste::Maçalar => 'Siyah',
};
}
}
?>