Junior
Milyen mágikus módszereket ismersz az osztályból?
sobes.tech MI
Válasz az MI-től
PHP-ben számos speciális módszer létezik, amelyeket "varázslatos" módszereknek neveznek. Ezek automatikusan hívódnak meg bizonyos műveletek során osztályobjektumokkal. Néhány közülük:
__construct(): Az osztály új példányának létrehozásakor hívódik meg. Az objektum inicializálására szolgál.__destruct(): Az objektum megsemmisítésekor hívódik meg (például a szkript végrehajtásának befejezésekor vagy kifejezetten azunset()hívásakor). Az erőforrások felszabadítására szolgál.__call($name, $arguments): Akkor hívódik meg, amikor megpróbál egy nem elérhető (nem látható a jelenlegi kontextusban) metódust meghívni az objektumon.$namea hívott metódus neve,$argumentspedig az argumentumok tömbje.__callStatic($name, $arguments): Hasonló a__call()-hoz, de akkor hívódik meg, amikor egy nem elérhető statikus metódust próbálunk meghívni.__get($name): Akkor hívódik meg, amikor megpróbál egy nem elérhető tulajdonságot olvasni az objektumból.$namea tulajdonság neve.__set($name, $value): Akkor hívódik meg, amikor megpróbál egy nem elérhető tulajdonságba írni.$namea tulajdonság neve,$valuepedig az érték, amit hozzárendelünk.__isset($name): Akkor hívódik meg, amikor ellenőrizzük, hogy egy nem elérhető tulajdonság létezik-e azisset()vagy azempty()segítségével.$namea tulajdonság neve.__unset($name): Akkor hívódik meg, amikor megpróbálunk egy nem elérhető tulajdonságot törölni azunset()segítségével.$namea tulajdonság neve.__sleep(): Az objektum serializálása előtt hívódik meg aserialize()segítségével. Vissza kell adnia egy tömböt a serializálandó tulajdonságok neveivel.__wakeup(): Azonnal a deserializálás után hívódik meg azunserialize()segítségével. Használható a kapcsolatok vagy erőforrások helyreállítására.__toString(): Akkor hívódik meg, amikor megpróbálja az objektumot sztringgé alakítani (példáulecho-val). Vissza kell adnia az objektum szöveges reprezentációját.__invoke(...$args): Akkor hívódik meg, amikor megpróbálja az objektumot függvényként használni.__set_state(array $properties): Akkor hívódik meg, amikor egy objektumot visszaállítunk avar_export()segítségével. Egy tömböt kap az exportált tulajdonságokkal.__clone(): Akkor hívódik meg, amikor klónozza az objektumot aclonesegítségével. Mély másolatokat készít (például, amikor az objektumon belüli objektumokat klónozza).
Fontos, hogy ezeket a módszereket óvatosan használja, mivel helytelen használatuk a kód viselkedésének kiszámíthatatlanságához vezethet.