<?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 bağımsız değişken 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());
}
?>