Sobes.tech
Junior — Middle

¿Cómo se puede acceder programáticamente a los campos privados de una clase sin editar su código fuente?

sobes.tech AI

Respuesta de la IA

En PHP, se puede acceder a los campos privados de una clase mediante reflexión (Reflection). Esto permite acceder a propiedades y métodos, incluso si están declarados como private o protected, sin modificar el código fuente de la clase.

Ejemplo:

class MyClass {
    private $secret = 'hidden';
}

$obj = new MyClass();

$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty('secret');
$property->setAccessible(true); // hacemos que la propiedad privada sea accesible

echo $property->getValue($obj); // mostrará 'hidden'

De esta manera, con ReflectionProperty::setAccessible(true), se pueden obtener y modificar campos privados.