Junior — Middle
¿Cómo se pueden llamar a los métodos privados de una clase desde código externo?
sobes.tech AI
Respuesta de la IA
En PHP, los métodos privados de una clase no son accesibles directamente desde el código externo, pero hay varias formas de llamarlos:
- Uso de Reflection API — permite acceder a métodos privados y llamarlos:
class MyClass {
private function secret() {
return "Método secreto";
}
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$method = $reflection->getMethod('secret');
$method->setAccessible(true); // Hace que el método sea accesible
echo $method->invoke($obj); // Mostrará: Método secreto
-
Llamada a través de un método público dentro de la clase — si existe un método público que llama al privado.
-
Herencia y sobrescritura (limitadamente) — pero los métodos privados no se heredan directamente.
La mayoría de las veces, se utilizan Reflection para pruebas o para sortear restricciones.