Nitelikler

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',
        };
    }
}
?>