Méthodes Magiques
Les méthodes magiques sont des méthodes qui sont appelées suite à un événement particulier (construction, destruction, clonage...).
Si la méthode n'est pas implémentée dans votre classe, l'action par défaut sera effectuée.
Les méthodes magiques commencent par un double souligné bas (__).
Définition : __construct, __destruct
Ces méthodes permettent de réaliser des actions à la construction ou à la destruction d'un objet.
Définition : __call, __callStatic
La méthode __call est appelée lorsque vous utilisez une méthode qui n'existe pas.
Dans ce cas vous pouvez ajouter un contenu alternatif :
__callStatic concerne l'appel à une méthode static.
Définition : __get, __set
Ces méthodes sont appelées lorsque vous tentez d'accéder à une propriété inaccessible ou inexistante.
On pourrait utiliser ce mécanisme pour retourner une erreur ou simuler un système de getter et setter sur des propriétés protégées :
public function __set($name, $value)
{
$this->$name = $value;
}
public function __get($name)
{
return $this->$name;
}
public function __set($name, $value) { $this->$name = $value; } public function __get($name) { return $this->$name; }
Définition : __toString
Cette méthode est appelée lorsque vous utilisez votre objet comme s'il était une String.
Définition : __invoke
Cette méthode est appelée lorsque vous tentez d'utiliser votre objet comme une fonction.
public function __invoke($arg)
{
echo "Je suis un objet pas une fonction";
}
...
$monObjet(); // affiche : "Je suis un objet pas une fonction"
public function __invoke($arg) { echo "Je suis un objet pas une fonction"; } ... $monObjet(); // affiche : "Je suis un objet pas une fonction"
Définition : __isset, __unset, __debugInfo, __clone
Ces méthodes sont appelées lorsque vous tentez d'utiliser les fonctions isset(), unset(), var_dump() ou le mot clef clone.