Enum'lar
enum ile tür güvenli sabitler tanımlamayı ve kullanmayı öğrenirsin.
enum ile tür güvenli sabitler
PHP 8.1'de gelen enum, belirli değer kümesini tür güvenli şekilde tanımlar. Bir Suit enum'u kağıt iskambil türlerini listeleyebilir; yanlış değer girmeyi imkansız kılar.
Her case tek bir değeri temsil eder ve bir sabit örneği (instance) gizler. Suit::Heart her zaman aynı nesneyi verir.
Tür bildirimi Suit kullanan bir parametre yalnızca geçerli dört değeri kabul eder; başka değer derleme veya yürütme anında hata verir.
Backed enum ve enum yöntemleri
Bir enum'a int veya string geri değer (backed value) bağlayabilirsin: enum Status: int { case Active = 1; }. Burada int bir skalar türdür; PHP 8.0 ile gelen union types sayesinde parametreler de int|string gibi birleşik türler alabilir.
Backed enum'lar Status::Active->value ile değeri döner, Status::from(1) ile değerden case üretir.
enum içine yöntem de yazılır; match ile case'e göre davranış seçilir. Böylece davranış duruma bağlı kalır.
Uygulama Suit backed enum
Suit adında, string backed bir enum tanımla. Case'ler: Heart = "H", Diamond = "D", Club = "C", Spade = "S".
Aşağıdaki yazdırma satırı çalıştığında H çıktısını vermeli.
Örnek çözümü göster
enum Suit: string {
case Heart = "H";
case Diamond = "D";
case Club = "C";
case Spade = "S";
}
echo Suit::Heart->value;
Kendini test et
-
enum case'ini tamamla
enum Suit { case Heart; case Diamond; case ____; case Spade; }Cevabı göster
enum Suit { case Heart; case Diamond; case Club; case Spade; } -
Status::Active->value ne döner?
enum Status: int { case Active = 1; case Paused = 2; }- Active
- 1
- Status
- true
Cevabı göster
1 — Doğru. Status::Active case'inin backed değeri 1 olduğu için ->value 1 döner.
-
enum kavramlarını eşleştir
- enum
- sabit kümesi türü
- case
- enum üyesi
- backed
- değerli enum
- ->value
- backed değere erişim