Dans la programmation orienté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 ne présente que les méthodes magiques couramment utilisées en php Les amis qui en ont besoin peuvent venir s'y référer
Les méthodes magiques couramment utilisées sont : Tostring () Call(). autoLoad() clone () GET() SET() isset() unset()
1.Tostring() Utilisé pour définir l'objet de sortie appelé lors du référencement Couramment utilisé, l'impression des informations sur certains objets doit avoir une valeur de retour
par exemple : il existe une classe de persistance
Persion per =new persion()
Echo per; 🎜>
Le code est le suivant :
Function Tostring() { $str=this->$name.this->age; Return $str; }
Affectation de référence$per1 =$per2; une seule adresse en mémoire
et $per1=clone $per2 À l'heure actuelle, il y a deux adresses mémoire
3 La méthode call() n'existe pas lors de l'appel automatique de l'instance de classe. exécuté lorsqu'une fonction existe
Si vous essayez d'appeler une fonction qui n'existe pas dans la classe, une erreur de syntaxe
apparaîtra afin de fournir une invite conviviale nous pouvons. déclarer Call() dans la méthode de classe ;
Function call($funName,$argu) { Echo "名为".$funName."参数为".printf($argh)."的函数不存在", }
Cette fonction consiste à ajouter au page référencée. Nous avons tous utilisé cette situation, si nous devons appeler d'autres fichiers php dans la page, nous devons utiliser la méthode include
Cependant, s'il y a des dizaines de pages qui doivent le faire. être référencé, c'est trop fastidieux. On peut utiliser la méthode autoload dans la page
De cette façon, partout où d'autres classes sont référencées, le fichier de classe sera automatiquement référencé. le fichier doit être le nom de la classe.php
Function autoload($className) { Include $className.".php"; }
5.GET() Accès privé dans les attributs de la classe
Si les attributs de la classe sont définis sur des attributs privés, ils sont inaccessibles dans les instances de la classe, mais comment y accéder ? Nous pouvons utiliser GET()
Par exemple :
la classe a
pour instancier la personne per=new person()
Class person { Private $name; Private $age; }
nous pouvons y accéder en appelant à nouveau Per->$name
Function GET($proName) { Return this->$proName; }
6.SET() définit les attributs privés dans la classe
Le principe est le même que ci-dessus Nous pouvons ajouter la fonction SET() à la classe, et chaque fois qu'elle est donnée en appelant l'instance de classe Lors de l'attribution de propriétés privées, la fonction SET sera exécutée Prototype de fonction :
Puisqu'il s'agit d'une affectation de méthode, nous pouvons en faire. traitement logique
Function SET($proName,$value) { This->$proName=$value; }
7. isset() est automatiquement appelé pour déterminer si des propriétés ou des méthodes privées dans une classe existent
Tout d'abord, introduisons la méthode isset, qui est utilisée pour déterminer si les propriétés et les méthodes
existent, mais nous ne pouvons pas transmettre L'instance de classe détermine si un attribut privé dans la classe existeSi nous utilisons isset(per->$name);//La valeur de retour est fausse, mais l'attribut $name existe, comment le résoudre ?
Solution :
1. Définissez $name comme propriété privée 2. Ajoutez < dans la définition de la classe 🎜. >
Dans ce cas, nous appelons à nouveau isset($name) ; la valeur de retour sera vraie
Function isset($proName) { Return isset(this->$proName);//再类内部是可以访问私有属性的 }
8.unset() est automatiquement appelé lors de la suppression des variables privées dans le fichier ; class
le supprimer, mais si. c'est privé, nous utilisons uniquement cette méthode. Elle ne peut pas être implémentée Comment l'implémenter ? Nous pouvons utiliser la méthode unset() pour réaliser cette fonction. Nous devons ajouter
au fichier. class. Nous pouvons maintenant appeler unset($name); pour supprimer la classe de personne. L'attribut privé $name est
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!