Sobes.tech
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 az unset() 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. $name a hívott metódus neve, $arguments pedig 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. $name a tulajdonság neve.
  • __set($name, $value): Akkor hívódik meg, amikor megpróbál egy nem elérhető tulajdonságba írni. $name a tulajdonság neve, $value pedig 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 az isset() vagy az empty() segítségével. $name a tulajdonság neve.
  • __unset($name): Akkor hívódik meg, amikor megpróbálunk egy nem elérhető tulajdonságot törölni az unset() segítségével. $name a tulajdonság neve.
  • __sleep(): Az objektum serializálása előtt hívódik meg a serialize() 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 az unserialize() 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ául echo-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 a var_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 a clone segí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.