Sobes.tech
Junior — Middle

Klass obyekti xususiyatiga qiymat tayinlaganimizda __set() metodi avtomatik chaqiriladimi?

sobes.tech AI

AIdan javob

PHP'dagi __set() metodi faqat mavjud bo'lmagan yoki kirish mumkin bo'lmagan (masalan, shaxsiy yoki himoyalangan) ob'ekt xususiyatiga qiymat tayinlashga harakat qilayotganingizda avtomatik ravishda chaqiriladi. Agar xususiyat e'lon qilingan va kirish mumkin bo'lsa, unda __set() chaqirilmaydi va tayinlash to'g'ridan-to'g'ri amalga oshadi.

Misol:

class Example {
    private $data = [];

    public function __set($name, $value) {
        echo "__set '$name' xususiyati uchun chaqirildi va qiymati '$value'\n";
        $this->data[$name] = $value;
    }

    public $existingProp;
}

$obj = new Example();
$obj->existingProp = 123; // __set chaqirilmaydi
$obj->newProp = 456;      // __set chaqiriladi

Ushbu misolda, $obj->existingProp = 123; tayinlash to'g'ridan-to'g'ri amalga oshiriladi, $obj->newProp = 456; esa __set() metodini chaqiradi, chunki newProp sinfda e'lon qilinmagan.