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.