Junior
Ի՞նչ են մոգական մեթոդները PHP-ում։
sobes.tech AI
Պատասխան AI-ից
Մագիկ մեթոդները PHP-ում հատուկ մեթոդներ են, որոնք ավտոմատ կերպով կանչվում են որոշակի իրավիճակներում: Նրանց անունները սկսվում են երկու ստորակետից (__):
Հիմնական մոգական մեթոդների ցանկը՝
__construct(): Կոչվում է նոր օբյեկտ ստեղծելիս:__destruct(): Կոչվում է օբյեկտի ոչնչացման ժամանակ:__call($name, $arguments): Կոչվում է երբ փորձում եք կանչել անհասանելի կամ չհասցված մեթոդ:__callStatic($name, $arguments): Կոչվում է երբ փորձում եք կանչել անհասանելի կամ չհասցված ստատիկ մեթոդ:__get($name): Կոչվում է երբ փորձում եք ստանալ անհասանելի հատկության արժեք:__set($name, $value): Կոչվում է երբ փորձում եք սահմանել անհասանելի հատկության արժեք:__isset($name): Կոչվում է երբ օգտագործում եքisset()կամempty()անհասանելի հատկության վրա:__unset($name): Կոչվում է երբ օգտագործում եքunset()անհասանելի հատկության վրա:__sleep(): Կոչվում է նախքան սերիալիզացիան, վերադարձնում է հատկությունների անունների զանգված:__wakeup(): Կոչվում է հետո десериализациայի:__toString(): Օգնում է օբյեկտին որպես տող վարել:__invoke($args): Կոչվում է երբ սցենարը փորձում է կանչել օբյեկտը որպես ֆունկցիա:__set_state(array $properties): Կոչվում է երբ արտահանում եք օբյեկտըvar_export()-ով:__clone(): Կոչվում է երբ ավարտվում է օբյեկտի կլոնավորումը:__serialize(): Կոչվում է սերիալիզացիայի ժամանակ, վերադարձնում է տվյալների զանգված:__unserialize(array $data): Կոչվում է десериализациայի ժամանակ, ստանում է տվյալները__serialize()-ից:
Օրինակ __construct և __destruct-ի օգտագործման:
<?php
class Example {
public function __construct() {
echo "Օբյեկտ ստեղծված\n";
}
public function __destruct() {
echo "Օբյեկտ ոչնչացված\n";
}
}
$obj = new Example();
unset($obj); // Արտադրական կերպով ոչնչացնում ենք օբյեկտը
?>
Օրինակ __get և __set-ի օգտագործման:
<?php
class DataStore {
private $data = [];
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
return null; // կամ արտաքսել արտահայտություն
}
}
$store = new DataStore();
$store->name = "Alice"; // Կոչվում է __set
echo $store->name; // Կոչվում է __get
?>