Maison > Article > développement back-end > Comprendre 11 méthodes magiques en PHP en une minute
Nous avons tellement appris sur PHP. Je me demande si vous maîtrisez parfaitement les 11 méthodes magiques en PHP. Sinon, suivez cet article pour continuer à apprendre
1. , __set
Ces deux méthodes sont conçues pour les propriétés qui ne sont pas déclarées dans les classes et leurs classes parents
La déclaration no inclut ici les attributs dont le contrôle d'accès est protégé et privé ( c'est-à-dire des attributs qui n'ont aucune autorisation d'accès)
2, __isset, __unset
Identique à la méthode __get et la méthode __set. La déclaration no inclut ici les attributs dont le contrôle d'accès est protégé et privé (c'est-à-dire les attributs sans autorisation d'accès)
3. __call
__call( $method, $arg_array ) Lors de l'appel d'une méthode non définie (y compris aucune autorisation d'accès), cette méthode est appelée
4, __autoload
__fonction autoload, automatiquement appelée lors de l'utilisation d'une classe qui n'a pas encore été défini. Cette fonction donne au moteur de script une dernière chance de charger les classes requises avant que PHP échoue avec une erreur.
Remarque : les exceptions levées dans la fonction __autoload ne peuvent pas être interceptées par le bloc d'instruction catch et entraînent une erreur fatale.
5. Méthode constructeur __construct, __destruct
Par défaut, PHP libère uniquement la mémoire occupée par les propriétés de l'objet et détruit les ressources liées à l'objet. objet. Le destructeur vous permet d'effectuer des opérations arbitraires après avoir utilisé le code d'un objet pour effacer la mémoire. Lorsque PHP détermine que votre script n'est plus associé à l'objet, le destructeur sera appelé dans l'espace de noms d'une fonction, cela se produira lorsque. la fonction renvoie. Pour les variables globales, cela se produira au retour de la fonction, si vous souhaitez détruire explicitement un objet, vous pouvez attribuer n'importe quelle autre valeur à la variable pointant vers l'objet, en attribuant généralement la variable. à NULL ou en appelant unset.
6. __clone
L'affectation d'objet en PHP5 utilise l'affectation de référence Lorsque vous utilisez la méthode clone pour copier un objet, l'objet appellera automatiquement la méthode magique __clone. Certaines opérations d'initialisation doivent être effectuées lors de la copie d'objets, qui peuvent être implémentées dans la méthode __clone.
7. __toString
La méthode __toString est automatiquement appelée lors de la conversion d'un objet en chaîne. Par exemple, lors de l'utilisation d'echo pour imprimer un objet, si la classe le fait. Si vous n'implémentez pas cette méthode, l'objet ne peut pas être imprimé via echo, sinon il affichera : Erreur fatale capturable : l'objet de la classe test n'a pas pu être converti en chaîne, cette méthode doit renvoyer une chaîne.
Avant PHP 5.2.0, la méthode __toString ne pouvait prendre effet que lorsqu'elle était utilisée conjointement avec echo() ou print(). Après PHP 5.2.0, il peut prendre effet dans n'importe quel environnement de chaîne (par exemple, via printf(), en utilisant le modificateur %s), mais ne peut pas être utilisé dans des environnements sans chaîne (comme en utilisant le modificateur %d). Depuis PHP 5.2.0, si un objet qui ne définit pas la méthode __toString est converti en chaîne, une erreur E_RECOVERABLE_ERROR sera signalée.
8. __sleep, __wakeup
serialize() vérifie s'il existe une fonction avec le nom magique __sleep dans la classe. Si tel est le cas, la fonction s'exécutera avant toute sérialisation. Il efface l'objet et doit renvoyer un tableau contenant les noms de toutes les variables de l'objet qui doivent être sérialisées.
Le but de l'utilisation de __sleep est de fermer toutes les connexions à la base de données que l'objet peut avoir, de soumettre des données en attente ou d'effectuer des tâches de nettoyage similaires. De plus, cette fonction est également utile si vous disposez d'objets très volumineux qui n'ont pas besoin d'être stockés complètement.
À l'inverse, unserialize() vérifie l'existence d'une fonction portant le nom magique __wakeup. Cette fonction peut reconstruire toutes les ressources que l'objet peut avoir, s'il est présent. Le but de l'utilisation de __wakeup est de rétablir toutes les connexions à la base de données qui auraient pu être perdues lors de la sérialisation et de gérer d'autres tâches de réinitialisation.
9. __set_state
Lorsque var_export() est appelé, cette méthode statique sera appelée (valable depuis PHP 5.1.0). Le seul paramètre de cette méthode est un tableau contenant les propriétés de classe disposées au format array('property' => value, ...).
10. __invoke
Lorsque vous essayez d'appeler un objet en appelant une fonction, la méthode __invoke sera automatiquement appelée. PHP5.3.0 ou supérieur est valide
11. __callStatic
Il fonctionne de manière similaire à la méthode magique __call(), __callStatic() sert à gérer les appels de méthode statique, PHP5.3.0 Le la version ci-dessus fonctionne, PHP resserre la définition de la méthode __callStatic() ; elle doit être publique et doit être déclarée statique. De même, la méthode magique __call() doit être définie comme publique, comme toutes les autres méthodes magiques.
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!