PHP'de __set ve __get magic metodları

27 Ağustos 2009 Perşembe - Unknown
__set ve __get metodları php için yarattığımız tüm objelerde bulunan magic metodlardır. Bunların haricinde bir kaç magic metod daha var. __set metodu bir objenin olmayan bir attribute'üne bir şey atamak istediğinizde otomatik olarak çağırılır, __get metodu ise olmayan bir attribute'ü çağırdığınızda çağırılır.

Örnek vermek gerekirse:

class Deneme{

public $x = 5;

}

$deneme_objesi = new Deneme();

echo $deneme_objesi->x;
echo $deneme_objesi->a;
$deneme_objesi->b = 3;


Yukarıdaki kodda Deneme class'ının bir objesini yaratıyoruz ve objenin x attribute'ünü çağırdığımızda bize normal bir şekilde x'i veriyor.
Fakat objenin a attribute'ünü çağıırdığımızda php arka planda bizim için objeye a attribute'ünü ekliyor, ve bunu __get methodu ile yapıyor. Tahmin edeceğiniz gibi a yeni yaratıldığı için değeri 0, ya da boş string. Ondan sonraki satırda da objenin b attribute'ü olmamasına rağmen b'ye 3'ü atamak istediğimizde, arka planda __set methoduu çalışıyor ve bizim için b'i yaratıyor.
Etiketler:

Hiç yorum yok: