Maison > développement back-end > tutoriel php > Comment puis-je accéder aux propriétés des objets protégés dans les anciennes versions de PHP (pré-5.5) ?

Comment puis-je accéder aux propriétés des objets protégés dans les anciennes versions de PHP (pré-5.5) ?

DDD
Libérer: 2024-12-05 16:15:14
original
283 Les gens l'ont consulté

How Can I Access Protected Object Properties in Older PHP Versions (Pre-5.5)?

Accéder aux propriétés des objets protégés en PHP

La programmation orientée objet de PHP fournit trois modificateurs d'accès : public, protégé et privé. Cependant, l’impossibilité d’accéder directement aux propriétés protégées peut être frustrante lorsque l’on travaille avec certains objets. Cet article explore une solution pour récupérer les propriétés protégées dans les versions PHP antérieures à 5.5.

ReflectionClass à la rescousse

Avant PHP 5.5, la classe ReflectionClass proposait une méthode pour accéder aux propriétés protégées. La fonction suivante montre comment :

function accessProtected($obj, $prop) {
  $reflection = new ReflectionClass($obj);
  $property = $reflection->getProperty($prop);
  $property->setAccessible(true);
  return $property->getValue($obj);
}
Copier après la connexion

En utilisant cette fonction, vous pouvez accéder aux propriétés protégées en passant l'objet et le nom de la propriété comme arguments. Par exemple, étant donné l'objet dans votre exemple :

$value = accessProtected($obj, '_value');
Copier après la connexion

Cette méthode récupérera efficacement la propriété _value protégée et la stockera dans la variable $value.

Remarque pour PHP 5.2 .17

Bien que la solution ReflectionClass ait été efficace dans votre environnement local, elle peut ne pas être disponible sur les serveurs exécutant la version PHP 5.2.17. Malheureusement, il n'existe aucune méthode alternative pour accéder aux propriétés protégées dans de telles versions de 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal