PHP fournit des méthodes magiques qui permettent aux développeurs de surcharger certaines opérations, telles que l'accès aux propriétés et les appels de méthodes. Parmi ces méthodes figurent __get et __set, qui sont conçues pour remplacer le comportement par défaut de l'accès aux propriétés.
Le code fourni définit une classe foo avec des propriétés publiques et des méthodes magiques __get et __set. Cependant, lorsque vous tentez d'utiliser ces méthodes pour accéder à $foo->bar, seule la propriété publique est accessible.
En effet, __get et __set ne sont invoqués que lorsque la propriété ou la méthode est inaccessible. Puisque $foo->bar est une propriété publique, les méthodes magiques ne sont pas déclenchées.
Conformément au manuel PHP, __get est exécuté lors de la lecture de données à partir de propriétés inaccessibles, et __set est utilisé lors de l'écriture de données dans des propriétés inaccessibles. propriétés. Dans ce cas, les membres de la classe sont publics et donc accessibles, ce qui rend les méthodes magiques non pertinentes.
Au lieu d'utiliser des méthodes magiques, envisagez d'implémenter des getters et setters appropriés ou d'accéder directement aux propriétés pour un comportement plus efficace et prévisible. Les méthodes magiques doivent être réservées à des cas exceptionnels où des propriétés ou des méthodes sont inaccessibles par des moyens normaux.
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!