PHP Type Hinting

PHP Type Hinting ya da Türkçesi Tür Dayatma. Bu yazıda Type Hinting olayından bahsedeceğim.

Type Hinting’de esas olay fonksiyona gönderilen parametrenin istediğimiz bir türde olmasını sağlamak. Örneğin yazdir diye bir fonksiyonunuz var ve bu yazdir fonksiyonu sadece array yazdiracak.

Örneğin:

Gördüğünüz gibi yazdir fonksiyonu sadece array türünü kabul ediyor. String gelince hata verdi (bu hatayı handle etmek için set_error_handler fonksiyonunu kullanabilirsiniz.).

Şimdi en basit Type Hinting olayını gördük.

Bir de bunu Class‘lar ile deneyelim.

Önce kodu vereyim sonra açıklayım.

Abstract class’dan extends edilmiş 2 tane (A ve B) class’ları var. C ise tamamen bağımsız bir class.

yazdir fonksiyonunda ise bir Type Hinting yapılmış; sadece yonetici class’ındaki getir methodu işlenecek. Ancak C class‘ında getir methodu olmasına rağmen, yonetici class‘ından extends edilmediği için hata verecektir.

Nesneler oluşturulup yazdir‘a gönderilince, gönderilmiş nesnelerin içinde getir methodu aranıyor. Eğer bulamazsa hata veriyor. Bu sondaki yazdir içinden method çağırma için ayrıca Bkz.: Duck Typing