Sobes.tech
Junior — Middle

Klass obyektinin xüsusiyyətinə dəyər təyin etdiyimiz zaman __set() metodu avtomatik çağrılacaqmı?

sobes.tech Süni İntellekt

AI-dan cavab

PHP-də __set() metodu yalnız obyektdə mövcud olmayan və ya girişə qapalı (məsələn, özəl və ya qorunan) xüsusiyyətə dəyər təyin etməyə çalışdığınız zaman avtomatik olaraq çağırılır. Əgər xüsusiyyət elan olunub və girişə açıqdırsa, __set() çağırılmayacaq və təyin etmə birbaşa həyata keçiriləcək.

Nümunə:

class Example {
    private $data = [];

    public function __set($name, $value) {
        echo "__set '$name' xüsusiyyəti üçün çağırıldı və dəyəri '$value'\n";
        $this->data[$name] = $value;
    }

    public $existingProp;
}

$obj = new Example();
$obj->existingProp = 123; // __set çağırılmır
$obj->newProp = 456;      // __set çağırılır

Bu nümunədə, $obj->existingProp = 123; birbaşa həyata keçirilir, $obj->newProp = 456; isə __set() metodunu çağırır, çünki newProp sinifdə elan olunmayıb.