Maison > développement back-end > tutoriel php > Résumé de plusieurs syntaxes de méthodes magiques et exemples d'utilisation en php

Résumé de plusieurs syntaxes de méthodes magiques et exemples d'utilisation en php

伊谢尔伦
Libérer: 2023-03-14 09:24:01
original
1700 Les gens l'ont consulté

Les méthodes magiques couramment utilisées incluent : Tostring () Call() autoLoad() clone() GET() SET() isset() unset()

1.Tostring() est utilisé pour définir l'objet de sortie et est appelé lors du référencement de . des informations sur certains objets et doit avoir une valeur de retour.
par exemple : Il existe une classe de persion
Persion per =new persion()
Echo per; //L'appel direct provoquera une erreur
Nous pouvons ajoutez la méthode tostring() dans la définition de la classe

Function  Tostring()
{
$str=this->$name.this->age;
Return $str;
}
Copier après la connexion

2.Clone() copie d'objet
Affectation de référence
$per1=$per2; n'a qu'une seule adresse en mémoire
et $per1=clone $ per2 Il y a deux adresses mémoire en ce moment

3 La méthode call() est automatiquement exécutée lors de l'appel d'une fonction qui le fait. n'existe pas dans l'instance de classe
Si vous essayez d'appeler une fonction qui n'existe pas dans la classe, il y aura une erreur de syntaxe , afin de fournir une invite conviviale
on peut déclarer la méthode Call() dans la classe

Function call($funName,$argu)
{
Echo "名为".$funName."参数为".printf($argh)."的函数不存在",
}
Copier après la connexion

4.autoLoad Charger automatiquement le fichier de classe utilisé par Cette fonction consiste à ajouter
à la page référencée. Nous avons tous utilisé cette situation. Lorsque nous devons appeler d'autres fichiers php dans la page, nous devons utiliser la méthode include
Mais s'il y a des dizaines de pages qui en ont besoin. pour être référencé, ce serait trop fastidieux. Nous pouvons utiliser la méthode de chargement automatique

Function autoload($className)
{
Include $className.".php";
}
Copier après la connexion

sur 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 de classe prérequis doit être Class name.php

5.GET() Accéder aux attributs privés de la classe
Si les attributs de la classe sont définis sur des attributs privés, dans le instance de la classe Elle est inaccessible, mais comment puis-je y accéder ?
Nous pouvons utiliser GET()
Par exemple :
la classe a

class person
{
Private $name;
Private $age;
}
Copier après la connexion

pour instancier la personne per=new person()
Per- > $name; //La valeur ne peut pas être obtenue de cette manière
Mais si nous ajoutons la méthode GET dans la classe

Function GET($proName)
{
Return this->$proName;
}
Copier après la connexion

nous pouvons y accéder en appelant à nouveau Per->$name
Certaines personnes peuvent se poser des questions en faisant cela. De cette manière, les variables privées sont accessibles directement. Quelle est la différence entre les déclarer publiques ?
S'il est déclaré public, on peut le lire arbitrairement. S'il est privé, si on ajoute la méthode get, alors le contenu de la méthode GET sera appelé à chaque appel de l'attribut privé, on pourra donc en ajouter. logique à la méthode get deal with.

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 lui attribuer une valeur. l'attribut privé en appelant l'instance de classe. , exécutera la fonction SET, Prototype de fonction :

Function SET($proName,$value)
{
This->$proName=$value;
}
Copier après la connexion

Puisqu'il s'agit d'une affectation de méthode, nous pouvons effectuer un traitement logique

7.isset() Appelez automatiquement
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 Cette méthode est utilisée pour déterminer si les propriétés . et les méthodes existent, mais nous ne pouvons pas transmettre les instances de classe. Déterminer si un attribut privé dans la classe existe
Si nous utilisons isset(per->$name);//La valeur de retour est fausse, mais le $ 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 🎜. >
Function isset($proName)
{
Return  isset(this->$proName);//再类内部是可以访问私有属性的
}
Copier après la connexion
Dans ce cas, nous appelons à nouveau isset($name) ; la valeur de retour sera vraie

8.unset() est automatiquement appelée lors de la suppression des variables privées dans la classe<🎜 ; >Combiné avec cela, unset(). La méthode unset peut supprimer des attributs lorsque nous devons supprimer des attributs dans une classe, s'il s'agit d'un attribut public, nous pouvons directement
le supprimer, mais s'il est privé. , nous ne pouvons pas y parvenir uniquement via cette méthode.
Comment l'implémenter ? Nous pouvons utiliser la méthode unset() pour réaliser cette fonction. Nous devons maintenant ajouter

. appelez unset($name); pour supprimer les attributs privés de la classe de personne $name
Function unset($proName){Unset(this->$proName);}
Copier après la connexion

.

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