Les méthodes magiques
Avec PHP 5, la programmation orientée objet semble devenir une réalité mais nous savons tous qu'en PHP une variable peut prendre n'importe quelle forme, cela dépend de la donnée qu'on lui assigne. Aussi, PHP crée automatiquement des variables et leur assigne des valeurs même si les variables n'ont pas été définies. Mais en POO, toutes les données membres/méthodes doivent être définies. Pour résoudre certains de ces problèmes dans un environnement OO, des méthodes magiques ont été introduites en PHP5.
Note sur les méthodes magiques :
Les différentes méthodes magiques utilisées en PHP5 sont :
Avec PHP 5, la programmation orientée objet semble devenir une réalité mais nous savons tous qu'en PHP une variable peut prendre n'importe quelle forme, cela dépend de la donnée qu'on lui assigne. Aussi, PHP crée automatiquement des variables et leur assigne des valeurs même si les variables n'ont pas été définies. Mais en POO, toutes les données membres/méthodes doivent être définies. Pour résoudre certains de ces problèmes dans un environnement OO, des méthodes magiques ont été introduites en PHP5.
Note sur les méthodes magiques :
- Les méthodes magiques sont les fonctions membres qui sont utilisables par toutes les instances de la classe;
- Les méthodes magiques commencent toujours par `';Code :
__
- Toutes les méthodes magiques doivent être déclarées comme ;Code :
public
- Pour utiliser les méthodes magiques, elles doivent être définies à l'intérieur de la classe ou dans la portée de la classe.
Les différentes méthodes magiques utilisées en PHP5 sont :
- : Cette méthode est appelée à chaque fois qu'un objet d'une classe est instancié. Cette méthode fait partie du concept de POO en PHP5.Code :
__construct()
- : Cette méthode est appelée à chaque fois qu'un objet d'une instance est détruit ou que l'objet sort de la portée de la classe. Cette méthode fait partie du concept de POO en PHP5.Code :
__destruct()
- : Cette méthode est appelée automatiquement lorsque vous assignez des données à un attribut non défini d'une classe en PHP5.Code :
__set()
- : Cette méthode est appelée automatiquement lorsque vous essayez d'accéder à la donnée d'un attribut non défini d'une classe en PHP5.Code :
__get()
- : Cette méthode est automatiquement appelée quand vous faîtes appel à une méthode non définie d'une classe en PHP5.Code :
__call()
- : Cette méthode est automatiquement appelée quand un objet d'une classe est traité comme une chaine et que vous faites appel àCode :
__toString()
ouCode :echo()
. Cette méthode est vraiment utile si vous voulez contrôler les méthodes d'un objet et ses attributs.Code :print()
- : Cette méthode est appelée quand vous linéarisez un objet en PHP5. Avec cette méthode vous pouvez définir la façon dont les données de l'objet seront stockées.Code :
__sleep()
- : Cette méthode est appelée quand l'objet est sur le point d'être délinéarisé en PHP 5. Avec l'appel de cette méthode, vous pouvez effectuer des opérations initiales nécessaires avant de commencer l'opération sur la donnée objet reçue.Code :
__wakeup()
- : Cette méthode est automatiquement appelée lorsque vous essayer de vérifier l'existence d'un attribut non déclaré d'une classe en utilisant la fonctionCode :
__isset()
de PHP.Code :isset()
- : Cette méthode est automatiquement appelée à chaque fois que vous essayez de contrôler la destruction ou l'effacement d'un attribut non déclaré de la classe en utilisant la fonctionCode :
__unset()
de PHP.Code :unset()
- : Cette méthode est appelée à chaque fois que vous essayez de charger un objet d'une classe qui est située dans un fichier séparé et que vous n'avez pas inclue ce fichier en utilisantCode :
__autoload()
,Code :include()
,Code :include_once()
,Code :require()
. Pour utiliser cette méthode, il est obligatoire que le fichier PHP ait le même nom que la classe car cette méthode accepte le nom de la classe comme argument.Code :require_once()
- : PHP5 a introduit la méthode clone qui crée un copie de l'objet. La méthodeCode :
__clone()
est automatiquement appelée quand vous essayez d'appeler la méthode clone en PHP5. Cet opérateur ne crée pas une copie de la référence.Code :__clone()