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

  1. 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
  1. 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.

  2. 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.