Junior — Middle
Оё метавонед шарҳ диҳед, ки дар барномасозӣ 'функсияҳои ҷодугарӣ' чӣ маъно дорад?
sobes.tech AI
Ҷавоб аз AI
Дар PHP, "соҳирии функсия" (соҳирии методҳо) махсуси методҳо мебошанд, ки номҳои онҳо бо ду хати зер (__) оғоз ёфта ва бо онҳо ба охир мерасанд. Онҳо автоматӣ аз ҷониби интерпретатор дар ҳолатҳои муайян даъват мешаванд, ки имкон медиҳанд рафтори объектҳоро тағир додан.
Масаланҳои методҳои соҳирӣ:
__construct()— конструктори синф.__destruct()— деструктор.__get($name)— вақте ки ба хусусияти нобуд ё дастрас накарда муроҷиат мекунед, даъват мешавад.__set($name, $value)— вақте ки ба хусусияти нобуд ё дастрас накарда нависед, даъват мешавад.__call($name, $arguments)— вақте ки ба методи нобуд даъват мекунед, даъват мешавад.__toString()— имкон медиҳад, ки муайян кунед, ки чӣ гуна объект ба сатр табдил меёбад.
Масалан барои истифодаи __get ва __set:
class User {
private $data = [];
public function __get($name) {
return $this->data[$name] ?? null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$user = new User();
$user->name = 'Иван';
echo $user->name; // Иван
Бо ҳамин роҳ, методҳои соҳирӣ имкон медиҳанд, ки рафтори объектҳоро боэътимод идора кардан ва кор бо онҳо дар сценарияҳои муайянро осон гардонанд.