Sobes.tech
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 дар синф эълон нашудааст.