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.