Junior
Jaké magické metody třídy znáte?
sobes.tech AI
Odpověď od AI
V PHP existuje řada speciálních metod nazývaných "magické". Jsou automaticky volány při určitých akcích s objekty tříd. Některé z nich jsou:
__construct(): Volá se při vytváření nové instance třídy. Používá se k inicializaci objektu.__destruct(): Volá se při zničení objektu (například na konci běhu skriptu nebo při explicitním voláníunset()). Používá se k uvolnění zdrojů.__call($name, $arguments): Volá se při pokusu zavolat nedostupnou (neviditelnou v aktuálním kontextu) metodu objektu.$nameje název volané metody,$argumentsje pole jejích argumentů.__callStatic($name, $arguments): Podobné jako__call(), ale volá se při pokusu zavolat nedostupnou statickou metodu.__get($name): Volá se při pokusu číst nedostupnou vlastnost objektu.$nameje název vlastnosti.__set($name, $value): Volá se při pokusu zapisovat do nedostupné vlastnosti objektu.$nameje název vlastnosti,$valueje přiřazovaná hodnota.__isset($name): Volá se při kontrole existence nedostupné vlastnosti pomocíisset()neboempty().$nameje název vlastnosti.__unset($name): Volá se při pokusu odstranit nedostupnou vlastnost pomocíunset().$nameje název vlastnosti.__sleep(): Volá se před serializací objektu pomocíserialize(). Musí vrátit pole názvů vlastností, které mají být serializovány.__wakeup(): Volá se ihned po deserializaci objektu pomocíunserialize(). Může být použit k obnovení spojení nebo zdrojů.__toString(): Volá se při pokusu převést objekt na řetězec (například při výpisu pomocíecho). Musí vrátit řetězcovou reprezentaci objektu.__invoke(...$args): Volá se při pokusu použít objekt jako funkci.__set_state(array $properties): Volá se při obnovení objektu pomocívar_export(). Přijímá pole exportovaných vlastností.__clone(): Volá se při klonování objektu pomocíclone. Používá se pro hluboké kopie (například objekty uvnitř objektu).
Je důležité tyto metody používat opatrně, protože jejich nesprávné použití může vést k nepředvídatelnému chování kódu.