Junior
Aké magické metódy triedy poznáte?
sobes.tech AI
Odpoveď od AI
V PHP existuje rad špeciálnych metód, nazývaných "magické". Sú volané automaticky pri určitých akciách s objektmi triedy. Tu je niekoľko z nich:
__construct(): Volá sa pri vytvorení nového inštancie triedy. Používa sa na inicializáciu objektu.__destruct(): Volá sa pri zničení objektu (napríklad pri ukončení vykonávania skriptu alebo pri explicitnom volaníunset()). Používa sa na uvoľnenie zdrojov.__call($name, $arguments): Volá sa pri pokuse volať nedostupnú (neviditeľnú v aktuálnom kontexte) metódu objektu.$nameje meno volanej metódy,$argumentsje pole jej argumentov.__callStatic($name, $arguments): Je podobný__call(), ale volá sa pri pokuse volať nedostupnú statickú metódu.__get($name): Volá sa pri pokuse čítať nedostupnú vlastnosť objektu.$nameje meno vlastnosti.__set($name, $value): Volá sa pri pokuse zapisovať do nedostupnej vlastnosti objektu.$nameje meno vlastnosti,$valueje priraďovaná hodnota.__isset($name): Volá sa pri kontrole prítomnosti nedostupnej vlastnosti pomocouisset()aleboempty().$nameje meno vlastnosti.__unset($name): Volá sa pri pokuse odstrániť nedostupnú vlastnosť pomocouunset().$nameje meno vlastnosti.__sleep(): Volá sa pred serializáciou objektu pomocouserialize(). Musí vrátiť pole mien vlastností, ktoré majú byť serializované.__wakeup(): Volá sa ihneď po deserializácii objektu pomocouunserialize(). Môže sa použiť na obnovenie väzieb alebo zdrojov.__toString(): Volá sa pri pokuse previesť objekt na reťazec (napríklad pri výpise pomocouecho). Musí vrátiť reťazcové zobrazenie objektu.__invoke(...$args): Volá sa pri pokuse použiť objekt ako funkciu.__set_state(array $properties): Volá sa pri obnovení objektu pomocouvar_export(). Získa pole vlastností exportovanýchvar_export().__clone(): Volá sa pri klonovaní objektu pomocouclone. Používa sa na hlboké kopírovanie (napríklad objektov vo vnútri objektu).
Je dôležité tieto metódy používať opatrne, pretože ich nesprávne použitie môže viesť k nepredvídateľnému správaniu kódu.