PHP Enum Kullanımı: string ve int backed enum farkları

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 15

sysuser

PREMİUM
Katılım
9 Kas 2025
Mesajlar
174
Tepki puanı
4
Cinsiyet
Kadın

PHP Enum Kullanımı: string ve int backed enum farkları​


PHP 8.1 öncesinde sabitleri enum gibi kullanmak için sınıf sabitleri veya abstract sınıf hileleri gerekirdi. Enum dil özelliği bu ihtiyacı resmi olarak karşıladı.

Pure Enum​

PHP:
enum Status {
    case Active;
    case Inactive;
    case Banned;
}

Backed Enum​

PHP:
enum Color: string {
    case Red = 'red';
    case Green = 'green';
    case Blue = 'blue';
}

$color = Color::from('red');   // Color::Red
$raw   = Color::Red->value;    // 'red'

Pratik Fark​

  • Pure enum: yalnızca karşılaştırma ve match ifadesinde kullanılır
  • Backed enum: veritabanına kaydetmek ve geri okumak için from()/tryFrom() metodları kullanılır
  • int backed enum: sıralama veya bitfield gereken yerlerde tercih edilir

Enum case'leri interface implemente edebilir, metod tanımlayabilir ancak property barındıramaz. Bu kısıtlamayı aşmak için genellikle readonly sınıflarla birlikte kullanılır.
 
Geri
Üst