Junior — Middle
Биз класс объектисинин мүлкүнө маанини белгилегенде __set() методу автоматтык түрдө чакырылат беле?
sobes.tech AI
AIден жооп
PHP-деги __set() ыкмасы автоматтык түрдө гана чакырылат, эгер сиз объекттин бар болбогон же жеткиликтүү эмес (мисалы, жеке же корголгон) өзгөчөлүгүнө маанини белгилеп жатсаңыз. Эгер өзгөчөлүк жарыяланган жана жеткиликтүү болсо, анда __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 класс ичинде жарыяланган эмес.