Sobes.tech
Junior

Kādus burvju metodes klases jūs zināt?

sobes.tech AI

Atbilde no AI

PHP pastāv virknei īpašu metožu, sauktu "maģiskiem". Tie tiek automātiski izsaukti noteiktās darbībās ar klases objektiem. Šeit ir daži no tiem:

  • __construct(): Izsauc, izveidojot jaunu klases instanci. Izmanto objekta inicializācijai.
  • __destruct(): Izsauc, kad objekts tiek iznīcināts (piemēram, kad beidzas skripta izpilde vai tieši izsaucot unset()). Izmanto resursu atbrīvošanai.
  • __call($name, $arguments): Izsauc, kad mēģināt izsaukt nepieejamu (neredzamu pašreizējā kontekstā) metodi. $name - izsaukta metodes nosaukums, $arguments - tās argumentu masīvs.
  • __callStatic($name, $arguments): Līdzīgs __call(), bet izsauc, mēģinot izsaukt nepieejamu statisku metodi.
  • __get($name): Izsauc, kad mēģināt nolasīt nepieejamu īpašību. $name - īpašības nosaukums.
  • __set($name, $value): Izsauc, kad mēģināt ierakstīt nepieejamā īpašībā. $name - īpašības nosaukums, $value - piešķirjamā vērtība.
  • __isset($name): Izsauc, kad pārbauda nepieejamas īpašības esamību ar isset() vai empty(). $name - īpašības nosaukums.
  • __unset($name): Izsauc, kad mēģināt izdzēst nepieejamu īpašību ar unset(). $name - īpašības nosaukums.
  • __sleep(): Izsauc, pirms objekta serializācijas ar serialize(). Jāatgriež īpašību nosaukumu masīvs, kuras jāserializē.
  • __wakeup(): Izsauc, tūlīt pēc objekta deserializācijas ar unserialize(). Var izmantot saišu vai resursu atjaunošanai.
  • __toString(): Izsauc, mēģinot pārvērst objektu uz virkni (piemēram, ar echo). Jāatgriež objekta virknējošā attēlojuma reprezentācija.
  • __invoke(...$args): Izsauc, mēģinot izmantot objektu kā funkciju.
  • __set_state(array $properties): Izsauc, kad atjauno objektu ar var_export(). Saņem var_export() eksportēto īpašību masīvu.
  • __clone(): Izsauc, kad klonējat objektu ar clone. Izmanto dziļai kopēšanai.

Ir svarīgi šos metodes izmantot uzmanīgi, jo to nepareiza lietošana var novest pie koda neparedzamas uzvedības.