PHP’de Nesne Yönelimli Programlama-11
Nesne Özelliklerinin Aşırı Yüklenmesi (Property Overloading)
PHP’de nesne özelliklerinin aşırı yüklenmesi, bir nesnenin olmayan bir özelliğinin çalışma zamanında dinamik olarak oluşturulmasını ifade eder.
Olmayan özelliklerin çalışma esnasında oluşturulabilmesi için __set(), __get(), __isset() ve __unset() sihirli yöntemlerinden faydalanılır.
class sinif { // Olmayan özellikleri çalışma esnasında dizi tipindeki bu özellikte tutacağız public $dinamik_ozellikler = array(); public function __set($ozellik, $değer) { // Olmayan bir özelliğe değer atanmaya çalışılırsa bu yöntem devreye girer $this->dinamik_ozellikler[$ozellik] = $değer; } public function __get($ozellik) { // Olmayan bir özelliğin değeri alınmaya çalışılırsa bu yöntem devreye girer if (isset($this->dinamik_ozellikler[$ozellik])) { return $this->dinamik_ozellikler[$ozellik]; } } public function __isset($ozellik) { // Olmayan bir özelliğin varlığı kontrol edilirse bu yöntem devreye girer if (isset($this->dinamik_ozellikler[$ozellik])) { return TRUE; } else { return FALSE; } } public function __unset($ozellik) { // Olmayan bir özellik yokedilmeye çalışılırsa bu yöntem devreye girer if (isset($this->dinamik_ozellikler[$ozellik])) { unset($this->dinamik_ozellikler[$ozellik]); } } } $nesne = new sinif; $nesne->x = 5; // __set() devreye girer echo $nesne->x; // __get() devreye girer if ( ! empty($nesne->x)) // __isset() devreye girer { unset($nesne->x); // __unset() devreye girer }




Yorum Yapın