Maison >développement back-end >Problème PHP >Quelle est la méthode magique en php
Dans la programmation orientée objet, PHP fournit une série de méthodes magiques, qui offrent beaucoup de commodité pour la programmation et jouent un rôle très important en PHP. 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.
Laissez-moi vous présenter quelques méthodes magiques en PHP, j'espère que cela vous sera utile.
__construct()
__construct() est le constructeur d'une classe et est de loin la fonction la plus couramment utilisée. Lors de la création d'un objet, vous pouvez effectuer un travail d'initialisation dans le constructeur. Vous pouvez définir n'importe quel nombre de paramètres pour le constructeur, à condition que le nombre correspondant de paramètres soit transmis lors de l'instanciation. Toute exception qui se produit dans le constructeur empêche la création de l'objet.
__desctruct()
__desctruct() est le destructeur d'une classe. Il est généralement appelé automatiquement lorsque l'objet est détruit ou que l'exécution du script se termine. ne reçoit aucun paramètre. Certains travaux de nettoyage sont souvent effectués dans le destructeur, comme la fermeture de la connexion à la base de données, etc.
__call()
__call() sera appelé lors de l'appel d'une méthode qui n'existe pas ou qui est inaccessible. Il reçoit deux paramètres, l'un est le nom de la méthode à appeler et l'autre est un tableau contenant les paramètres de la fonction. On peut utiliser cette méthode pour appeler la fonction du même nom dans le sous-objet
__callStatic()
__callStatic() lorsque la méthode statique est appelé n'existe pas ou ne dispose pas d'autorisations suffisantes. Il sera appelé quand. Il reçoit deux paramètres, l'un est le nom de la méthode à appeler et l'autre est un tableau contenant les paramètres de la fonction. Son utilisation est exactement la même que celle de __call().
__get()
__get() sera appelé lorsque nous tenterons d'accéder à une propriété inexistante ou non publique. Il reçoit un paramètre, qui représente le nom de l'attribut accédé, et renvoie la valeur de l'attribut
__set()
__set() lorsque nous essayons de modifier un indisponible Il sera appelé lors de l'accès à l'attribut. Il reçoit deux paramètres, un indiquant le nom de l'attribut et un indiquant la valeur de l'attribut.
__isset()
__isset() sera appelé lorsque la méthode isset() ou empty() est appelée sur une propriété inaccessible. Elle reçoit un paramètre, Représente. le nom de l'attribut. Il doit renvoyer une valeur booléenne indiquant si la propriété existe.
__unset()
__unset() sera appelée lorsque la fonction unset() est appelée pour détruire un attribut inaccessible. Elle reçoit un paramètre, exprimé. Le nom de la propriété.
__sleep()
__sleep() sera appelé lors de la sérialisation d'un objet (appel de serialize()). Il ne prend aucun paramètre et doit renvoyer un tableau contenant toutes les propriétés qui doivent être sérialisées. Dans le cadre de cette méthode magique, vous pouvez également effectuer d’autres opérations.
Une chose à noter est de n'effectuer aucune opération de destruction dans cette fonction, car cela peut affecter l'objet en cours d'exécution
__wakeup()
__wakeup() sera appelé lors de la désérialisation de l'objet stocké. Il ne reçoit aucun paramètre et ne renvoie aucune valeur. Vous pouvez l'utiliser pour gérer les connexions à la base de données ou les ressources perdues lors de la sérialisation
__toString()
__toString() lorsque nous utilisons des objets car des chaînes seront appelées, ce n'est pas le cas recevoir des paramètres. Cette méthode permet de définir la représentation de l'objet.
__invoke()
La méthode de réponse lors de l'appel d'un objet en appelant une fonction
__set_state()
Cette méthode statique sera appelée lorsque var_export() sera appelée pour exporter une classe.
__clone()
__clone() peut résoudre le problème ci-dessus. Cette méthode magique est appelée lorsque le mot-clé clone est utilisé sur un objet.
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!