Sobes.tech
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 explicit unset()). Folosită pentru eliberarea resurselor.
  • __call($name, $arguments): Este apelată atunci când se încearcă apelarea unei metode inaccesibile (nevizibile în contextul curent). $name este numele metodei apelate, $arguments este 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. $name este numele proprietății.
  • __set($name, $value): Este apelată atunci când se încearcă scrierea într-o proprietate inaccesibilă a obiectului. $name este numele proprietății, $value valoarea atribuită.
  • __isset($name): Este apelată la verificarea existenței unei proprietăți inaccesibile cu isset() sau empty(). $name este numele proprietății.
  • __unset($name): Este apelată la încercarea de a șterge o proprietate inaccesibilă cu unset(). $name este numele proprietății.
  • __sleep(): Este apelată înainte de serializarea obiectului cu serialize(). Trebuie să returneze un array cu numele proprietăților care trebuie serializate.
  • __wakeup(): Este apelată imediat după deserializarea obiectului cu unserialize(). 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 cu echo). 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 cu var_export(). Primește un array cu proprietățile exportate.
  • __clone(): Este apelată la clonarea unui obiect cu clone. 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.