Sobes.tech
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.