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.