Php 8.1 ve Yeni Gelen Özellikler -Enums

Backend Developer
2 min readJan 11, 2022

--

Merhabalar, uzun yıllardır php kullanan biri olarak her sene karşıma “php öldü mü?” sorusu çıkıyor. Güncelleme alan ve bir çok farklı sektör ve platformda aktif olarak kullanılan ve güncel frameworkleri(LARAVEL, Codeigniter,Symfony vs..) olan bir dilin ölmediğini ispatlarcasına 8.1 sürümü yayınlandı.

8.1 güncellemesi ile gelen özellikler ve yeniliklerden her birini ayrı bir yazıda incelemek istiyorum çünkü üzerinde durulması gereken güzel özellikler ve yenilikler olduğu kanaatindeyim.

Enum

8.1 ile kullanıma giren en önemli gördüğüm özelliklerden biri enum kullanımı oldu. Aslında Php’nin kıyaslandığı bir çok dilde bu özellik zaten hali hazırda var ancak bu güncelleme ile artık bizde bunu kullanabileceğiz.Peki nedir bu Enum dedikleri şey?

Enum aslında sabit değerleri ifade eden bir kelime… Bir sınıf içinde değerleri sabit olan bazı değişkenler belirler bu static constant değişkenleri sınıf içerisinde kullanırdık. Eski kullanımı daha iyi anlatabilmek için basit bir örnek ile başlayalım. Mesela Sipariş işlemlerini tutan Orders isminde bir sınıfımızın olduğunu düşünelim. Bu sınıfın içerisinde sipariş durumlarını sabit değişkenlerde tutalım. Peki bunu nasıl yapıyorduk bakalım..

Buradaki temel sorun aslında verilen değerin int veri tipinde olmasına rağmen bunu dil seviyesinde doğrulama yada kontrol etmek çok mümkün değildir. İşte tam da bu kısımda devreye enum olayı giriyor ve bizi bu zahmetten kurtarıyor. Oluşturduğumuz enum :

Aslında benzer bir yapı gibi görünse de aşağıdaki kullanımını görünce farkı daha iyi anlayacaksınız.

Görüldüğü üzere enum nesne olarak kullanılıyor ve bu nesne içinde name ve value değerlerini taşıyor. Eğer caselere value verildi ise bunu value attribute’u çağırarak elde edebiliyoruz. Aynı zamanda name attribute de kullanılabilir. Bu da veri tipini kontrol etmek konusunda işimizi kolaylaştırıyor.

Evet… enum en basit ve yalın hali ile bu şekilde bir sonraki özellikte görüşmek üzere , lütfen değerli fikirlerinizi paylaşmaktan çekinmeyin.

--

--

Backend Developer
Backend Developer

Written by Backend Developer

Senior Php Developer | Javascript | Python

No responses yet