Maison >développement back-end >tutoriel php >Résumé des méthodes magiques couramment utilisées en php

Résumé des méthodes magiques couramment utilisées en php

怪我咯
怪我咯original
2017-07-14 15:05:532110parcourir

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 :

2.Copie d'objet Clone()
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 ;

4.autoLoad
Function call($funName,$argu)
{
Echo "名为".$funName."参数为".printf($argh)."的函数不存在",
}
Charger automatiquement le fichier de classe utilisé par

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()

Per- > $name; //La valeur ne peut pas être obtenue de cette manière
Class person
{
Private $name;
Private $age;
}
Mais si nous ajoutons la méthode GET dans la classe



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 ?
Function GET($proName)
{
Return this->$proName;
}
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 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 existe
Si 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 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

Combiné avec cela est 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 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!

Déclaration:
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