Ö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 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());
}
?>
To Top