Accès à une variable membre protégée en dehors d'une classe
Je suis d'interrogation pour l'ID d'un champ par l'accès à une fonction de classe qui quelqu'un a déjà mis en place. Le résultat est un objet retourné avec protégé variables membres. J'ai du mal à voir comment je peux accéder à la variable de membre de valeurs en dehors de la classe.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Il suffit d'ajouter une méthode "get" à la classe.
Accès protégé ou privé variables de publique est incorrect (c'est pourquoi elles sont protégées ou privées). Afin de mieux est d'étendre la classe et le besoin d'un accès à des biens ou à rendre la méthode get pour obtenir publicaly. Mais si vous voulez toujours obtenir propriétés sans l'extension et si vous utilisez PHP 5, vous pouvez accéder à La réflexion classes. Effectivement essayer ReflectionProperty classe.
Ici est la bonne réponse:
Nous pouvons utiliser bind() ou bindTo méthodes de Fermeture de classe à l'accès privé/protégé de données de certains cours, par exemple:
Vous ne pouvez pas: C'est le point de l'ensemble de
protected
.Vous auriez à
extend
la classe avec une méthode qui extrait les variables pour vous.Vous ne pouvez pas le faire sur un objet instancié, si vous avez de l'influence, soit la définition de la classe, ou de changer la classe de l'objet au point où il a été créé.
Vous pouvez accéder aux membres protégés de la classe en dehors de la classe, sans l'extension membres protégés de la classe, également sans l'aide de toutes les fonctions de membres protégés de la classe. Utilisation ci-dessous pour accéder aux.
Veuillez visiter le Lien pour vérifier plus de détails à ce sujet.
Si vous avez vraiment besoin de cette valeur:
Clairement, le concepteur de classes ne pense pas que vous auriez besoin de la valeur que vous essayez d'accéder, sinon, il aurait ajouté une méthode pour récupérer lui-même. Par conséquent, reconsidérer ce que vous faites.
DISCLAIMER: je ne me souviens pas de comment code. C'est un "tout". Cela peut être complètement à côté.
Bien, tout d'abord, si les membres sont protégés, le concepteur initial n'a pas l'intention de vous pour y accéder directement. Avez-vous vérifier les méthodes d'accès à l'?
Si il n'y a pas tout, et vous êtes conviced vous vraiment besoin de ces membres protégés, vous pouvez étendre le type avec des accesseurs, de fonte, et obtiennent de cette façon. Comme (en C++, comme le code)
et puis de l'utiliser
Vous obtenez la dérive. Espérons que cela fonctionne pour vous, Internet Explorer fait une moche compilateur, donc je n'ai pas pu le tester.
}