Junior
Ce metode magice ale clasei cunoști?
sobes.tech AI
Răspuns de la AI
În PHP, există o serie de metode speciale numite "magice". Ele sunt apelate automat în anumite acțiuni cu obiecte de clasă. Iată câteva dintre ele:
__construct(): Este apelată la crearea unei noi instanțe a clasei. Folosită pentru inițializarea obiectului.__destruct(): Este apelată la distrugerea obiectului (de exemplu, la sfârșitul execuției scriptului sau la apelul explicitunset()). Folosită pentru eliberarea resurselor.__call($name, $arguments): Este apelată atunci când se încearcă apelarea unei metode inaccesibile (nevizibile în contextul curent).$nameeste numele metodei apelate,$argumentseste un array cu argumentele sale.__callStatic($name, $arguments): Similar cu__call(), dar este apelată la încercarea de a apela o metodă statică inaccesibilă.__get($name): Este apelată atunci când se încearcă citirea unei proprietăți inaccesibile a obiectului.$nameeste numele proprietății.__set($name, $value): Este apelată atunci când se încearcă scrierea într-o proprietate inaccesibilă a obiectului.$nameeste numele proprietății,$valuevaloarea atribuită.__isset($name): Este apelată la verificarea existenței unei proprietăți inaccesibile cuisset()sauempty().$nameeste numele proprietății.__unset($name): Este apelată la încercarea de a șterge o proprietate inaccesibilă cuunset().$nameeste numele proprietății.__sleep(): Este apelată înainte de serializarea obiectului cuserialize(). Trebuie să returneze un array cu numele proprietăților care trebuie serializate.__wakeup(): Este apelată imediat după deserializarea obiectului cuunserialize(). Poate fi folosită pentru restaurarea conexiunilor sau resurselor.__toString(): Este apelată la încercarea de a converti obiectul într-un șir de caractere (de exemplu, la afișare cuecho). Trebuie să returneze o reprezentare în șir a obiectului.__invoke(...$args): Este apelată la încercarea de a folosi obiectul ca funcție.__set_state(array $properties): Este apelată la restaurarea unui obiect cuvar_export(). Primește un array cu proprietățile exportate.__clone(): Este apelată la clonarea unui obiect cuclone. Este folosită pentru copieri profunde (de exemplu, obiecte în interiorul unui obiect).
Este important să folosiți aceste metode cu precauție, deoarece utilizarea incorectă poate duce la comportamente imprevizibile ale codului.