Örnekler

Örnek 1 - Basit sınırlı değerler

<?php
enum Sırala
{
    case 
ART;
    case 
AZAL;
}
function 
sorgu($alanlar$süzgeçSırala $sırala Sırala::ART) { ... }
?>

sorgu() işlevi, $sırala'nın Sırala::ART veya Sırala::AZAL olduğunun garanti edildiği bilgisiyle artık güvenli bir şekilde ilerleyebilir. Başka herhangi bir değer TypeError ile sonuçlanırdı, bu nedenle daha fazla hata denetimi veya sınaması yapmak gerekmez.

Örnek 2 - Daha ileri özel değerler

<?php
enum UserStatus
string
{
    case 
Pending 'B';
    case 
Active 'E';
    case 
Suspended 'A';
    case 
CanceledByUser 'V';
    public function 
yafta(): string
    
{
        return 
match($this) {
            static::
Pending => 'Beklemede',
            static::
Active => 'Etkin',
            static::
Suspended => 'Askıda',
            static::
CanceledByUser => 'Kullanıcı Vazgeçti',
        };
    }
}
?>

Bu örnekte kullanıcının durumu, özellikle şu durumlardan biri olabilir: UserStatus::Pending, UserStatus::Active, UserStatus::Suspended veya UserStatus::CanceledByUser. UserStatus türünde değiştirge içeren bir işlev sadece bu dört değerden birini kabul edebilir.

Dört değer için, insan okuyabilir dizge döndüren yafta() yöntemi kullanılmıştır. Bu dizge, bir veritabanı alanında veya HTML seçim kutusunda kullanılabilen "makine adı" sayıl eşdeğeri olan dizgeden farklı ve bağımsızdır.

<?php
foreach (UserStatus::cases() as $case) {
    
printf('<option value="%s">%s</option>\n'$case->value$case->yafta());
}
?>

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top