PHP – Late Static Binding (Self ve Static Farkı)

Bu yazıda PHP’de self ve static anahtar kelimelerinin çalışma şekillerinden bahsedeceğim.

Öncelikle şunu belirteyim static anahtar kelimesi PHP 5.3.0′dan sonraki sürümlerde çalışır.

Self ve Static’in Aralarındaki Fark?

self, static öğelere (metod, değişken) erişmek için kullanılır.
static öğelelere erişmek için yine static anahtar kelimesi de kullanılabilir.

Ama aralarında önemli bir fark vardır. Örneğin: X sınıfı var içinde Z public static metodu var. Y sınıfı da X’den türeme.

self bulunduğu class’da bulunan metodun barındırdığı değeri verirken static ise türetilen (extend edilen) sınıftaki metodun değerini verir.

Static anahtar kelimesinin bu çalışma mantığı Late Static Binding olarak da adlandırılır.

Örnek kod:

Not: Bu kodu PHP 5.2.x’de çalıştırırsanız 13. satırda hata alacaksınız.