En Programmationorientée objet, PHP fournit une série de méthodes magiques, qui offrent beaucoup de commodité pour la programmation. Les méthodes magiques en PHP commencent généralement par (deux traits de soulignement) et ne nécessitent pas d'appels explicites mais sont déclenchées par certaines conditions. Cet article résume brièvement les méthodes magiques disponibles en PHP.
1.construct() Lors de l'instanciation d'un objet, cette méthode de l'objet est d'abord appelée.
class Test { function construct() { echo "before"; } } $t = new Test(); class Test { function construct() { echo "before"; } } $t = new Test();
Le résultat est :
start
Nous savons que le modèle objet php5 et la fonction avec le même nom de classe sont le constructeur de la classe, alors si Si nous définissons le constructeur et la méthode construct() en même temps, php5 appellera le constructeur par défaut au lieu de la fonction construct(), donc construct() sert de constructeur par défaut de la classe
2.destruct() When Cette méthode est appelée lorsqu'un objet est supprimé ou lorsque l'opération sur l'objet se termine.
class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end
Nous pouvons libérer des ressources à la fin de l'opération sur l'objet
3.get() Lorsque vous essayez de lire un objet qui n'existe pas, l'attribut est appelé .
Si vous essayez de lire une propriété qui n'existe pas dans un objet, PHP donnera un message d'erreur. Si nous ajoutons une méthode get à la classe, nous pouvons utiliser cette fonction pour implémenter diverses opérations similaires à la réflexion en Java.
class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在 class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在
4.set() est appelé lorsque vous essayez d'écrire une valeur dans une propriété qui n'existe pas.
class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo
5.call() Cette méthode est appelée lorsque l'on tente d'appeler une méthode qui n'existe pas sur l'objet.
class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go); class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
Le programme affichera :
La méthode getName que vous souhaitez appeler n'existe pas. Les paramètres sont : Array
(
[0] => aning
[1] => go
)
La méthode getName que vous souhaitez appeler n'existe pas. Les paramètres sont : Array
(
[0] => aning
[1] => go
)
6.toString() est utilisé lors de l'impression d'un objet Appel de
Cette méthode est similaire à la méthode toString de Java. Lorsque nous imprimons l'objet directement, nous appelons cette fonction
class Test { public function toString() { return ". Print Test"; } } $t = new Test(); echo $t;
Lorsque echo $t; est exécuté, $t->toString(); sera appelé pour afficher
Print Test
7.clone() est appelé lorsque l'objet est cloné
class Test { public function clone() { echo "J'ai été copié !" } }$t = new Test() $ ; t1 = clone $t;Résultat du programme : j'ai été cloné !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!