__set ve Mülkiyet aşırı yükleme

0 Cevap
class object
{
    public function __construct() {}

    public function __set($property, $value) 
    { 
         $this->$property = $value;
    }

    public function __get($property) 
    {
        if (isset($property))
            return $this->$property;
    }
}

Ben şimdi Mülkiyet Aşırı Yüklerin kavramını olsun. Ama kod çift $ 'ın neden tamamen emin değilim.

Örneğin, bu deyimi: $this->$property = $value; olağan karşı $this->property = $value;

Benim tahminim iki deyimi farklı nedenidir olmasıdır:

The $this->property = $value statement is use when the class have explicitly defined property. To clarified, code with a property that is explicitly defined: class object { private $property; __construct(){} /... setter, getter/ }

$this->$property = $value; dinamik olarak oluşturulan özelliği için kullanılır nereye kadar. Yani $this->$property aslında _set 's $ mülkiyet argüman bahsetmektedir. Anlaşılır olması için: _set ($property, $ value) , the first __set Yöntemin argümanı (kalın).

Heck, belki kod yerine sadece __set olarak 1 argümana atıfta ve $this-> sadece sınıfını zorlayan bir $property adında yeni bir değişken yaratıyor sınıf, yeni bir özelliğe sahip olduğunu kabul etmek ...

0 Cevap