Introduction à l'utilisation de la méthode magique php

怪我咯
Libérer: 2023-03-13 22:28:01
original
1276 Les gens l'ont consulté

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();
Copier après la connexion

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
Copier après la connexion

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 不存在
Copier après la connexion

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
Copier après la connexion

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);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal