Sobes.tech
Junior

Quels méthodes magiques de la classe connaissez-vous?

sobes.tech IA

Réponse de l'IA

En PHP, il existe une série de méthodes spéciales appelées "magiques". Elles sont automatiquement invoquées lors de certaines actions sur des objets de classe. En voici quelques-unes :

  • __construct(): Appelée lors de la création d'une nouvelle instance de la classe. Utilisée pour initialiser l'objet.
  • __destruct(): Appelée lors de la destruction de l'objet (par exemple, à la fin de l'exécution du script ou en appelant explicitement unset()). Utilisée pour libérer des ressources.
  • __call($name, $arguments): Appelée lorsqu'on tente d'invoquer une méthode inaccessible (non visible dans le contexte actuel). $name est le nom de la méthode appelée, $arguments est un tableau de ses arguments.
  • __callStatic($name, $arguments): Semblable à __call(), mais appelée lors de la tentative d'invoquer une méthode statique inaccessible.
  • __get($name): Appelée lors de la lecture d'une propriété inaccessible. $name est le nom de la propriété.
  • __set($name, $value): Appelée lors de l'écriture dans une propriété inaccessible. $name est le nom de la propriété, $value la valeur à assigner.
  • __isset($name): Appelée lors de la vérification de l'existence d'une propriété inaccessible avec isset() ou empty(). $name est le nom de la propriété.
  • __unset($name): Appelée lors de la suppression d'une propriété inaccessible avec unset(). $name est le nom de la propriété.
  • __sleep(): Appelée avant la sérialisation de l'objet avec serialize(). Doit retourner un tableau des noms des propriétés à sérialiser.
  • __wakeup(): Appelée juste après la désérialisation avec unserialize(). Peut être utilisée pour restaurer des connexions ou ressources.
  • __toString(): Appelée lors de la tentative de convertir l'objet en chaîne (par exemple, avec echo). Doit retourner une représentation en chaîne de l'objet.
  • __invoke(...$args): Appelée lors de l'utilisation de l'objet comme une fonction.
  • __set_state(array $properties): Appelée lors de la restauration d'un objet avec var_export(). Reçoit un tableau de propriétés exportées.
  • __clone(): Appelée lors du clonage d'un objet avec clone. Utilisée pour faire des copies profondes (par exemple, des objets à l'intérieur d'un objet).

Il est important d'utiliser ces méthodes avec précaution, car une utilisation incorrecte peut entraîner des comportements imprévisibles du code.