Ana Sayfa

PHP'de Sözde Tipler: Callable ve Iterable Neden Gerçek Tip Değil?

1 dk okuma

PHP'de callable ve iterable gibi sözde tipler, geliştiricilerin kodlarında esneklik sağlamak amacıyla tanıtılmıştır. PHP 5.4 ile callable, PHP 7.1 ile ise iterable kullanıma sunulmuştur. Ancak bu sözde tipler, string veya array gibi gerçek veri tiplerinden farklıdır. Gerçek tiplerin aksine, sözde tipler belirli doğrulama mantığına sahip tip kümeleridir ve çalışma zamanında değerlerin belirli koşulları karşılayıp karşılamadığını kontrol ederler. Bu durum, derleme zamanında kesin tip kontrolü yapmayı zorlaştırır.

callable sözde tipi, bir fonksiyonu veya metodu bir string veya array olarak çağırma yeteneğinden doğmuştur. PHP 4'teki call_user_func() fonksiyonu ve PHP 4.0.6'daki is_callable() fonksiyonu bu mekanizmanın temelini oluşturur. callable aslında bir Closure, string veya array birleşimidir ve bir parametrenin çağrılabilir olup olmadığını çalışma zamanında doğrular. Örneğin, bir stringin çağrılabilir olup olmadığını derleme zamanında bilmek her zaman mümkün değildir, çünkü bu, o isimde bir fonksiyonun veya metodun varlığına bağlıdır. Bu nedenle, callable doğrudan tip bildirimlerinde (typed properties) kullanılamaz.

iterable sözde tipi ise PHP 7.1'de bir değerin array veya Traversable arayüzünü uygulayıp uygulamadığını doğrulamak için tanıtılmıştır. Ancak PHP 8.2 ile birlikte iterable statüsünü kaybetmiş ve Traversable|array şeklinde bir birleşim tipi haline gelmiştir. Bu değişiklik, iterable'ın artık bir sözde tip olmaktan çıkıp, daha net ve derleme zamanında daha iyi anlaşılabilen bir tip tanımına sahip olduğunu göstermektedir. Makale, geliştiricilerin bu tipleri doğru anlamalarının ve kullanmalarının önemini vurgulamaktadır.

İçgörü

PHP'deki `callable` ve `iterable` gibi yapıların gerçek veri tipleri değil, belirli doğrulama mantığına sahip tip kümeleri olduğunu anlamak, daha sağlam ve öngörülebilir PHP uygulamaları geliştirmek için kritik öneme sahiptir.

Kaynak