Junior — Middle
Comment peut-on accéder par programmation aux champs privés d'une classe sans modifier son code source?
sobes.tech IA
Réponse de l'IA
En PHP, il est possible d’accéder aux champs privés d’une classe à l’aide de la réflexion (Reflection). Cela permet d’accéder aux propriétés et méthodes, même si elles sont déclarées comme privées ou protégées, sans modifier le code source de la classe.
Exemple :
class MyClass {
private $secret = 'hidden';
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty('secret');
$property->setAccessible(true); // rend la propriété privée accessible
echo $property->getValue($obj); // affichera 'hidden'
Ainsi, avec ReflectionProperty::setAccessible(true), il est possible d’obtenir et de modifier des champs privés.