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) ?
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); }
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');
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!