Web Geliştirici  :: PHP, Kohana, JavaScript, Ajax, XHTML, XML, CSS, MySQL ve diğer web yazılım geliştirme teknolojileri hakkında faydalı bilgi ve teknikler
 

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