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.