Junior — Middle
Оё усули __set() ба автоматӣ даъват мешавад вақте ки мо арзишро ба хосияти объекти синф таъин мекунем?
sobes.tech AI
Ҷавоб аз AI
Метод __set() дар PHP автоматӣ танҳо дар ҳолате даъват мешавад, ки шумо кӯшиш мекунед арзишро ба хосияти нобуд ё дастраснашудаи объект таъин кунед (масалан, хусусӣ ё муҳофизатшуда). Агар хосият эълон шуда ва дастрас бошад, __set() даъват намешавад ва таъин кардан мустақиман сурат мегирад.
Масалан:
class Example {
private $data = [];
public function __set($name, $value) {
echo "__set барои хосияти '$name' бо арзиши '$value' даъват шуд\n";
$this->data[$name] = $value;
}
public $existingProp;
}
$obj = new Example();
$obj->existingProp = 123; // __set даъват намешавад
$obj->newProp = 456; // __set даъват мешавад
Дар ин мисол, таъин кардани $obj->existingProp = 123; мустақиман сурат мегирад, дар ҳоле ки $obj->newProp = 456; методи __set()-ро даъват мекунад, зеро newProp дар синф эълон нашудааст.