Sobes.tech
Junior — Middle

Hogyan lehet egy osztály privát módszereit külső kódból hívni?

sobes.tech MI

Válasz az MI-től

PHP-ben egy osztály privát módszerei nem érhetők el közvetlenül a külső kódból, de több módon is meghívhatók:

  1. Reflection API használata — lehetővé teszi a privát módszerek elérését és meghívását:
class MyClass {
    private function secret() {
        return "Titkos módszer";
    }
}

$obj = new MyClass();

$reflection = new ReflectionClass($obj);
$method = $reflection->getMethod('secret');
$method->setAccessible(true); // Elérhetővé teszi a módszert

echo $method->invoke($obj); // Kiírja: Titkos módszer
  1. Hívás a osztályon belüli nyilvános módszerrel — ha van olyan nyilvános módszer, ami a privátot hívja.

  2. Öröklődés és felülírás (korlátozott) — de a privát módszerek nem öröklődnek közvetlenül.

Leggyakrabban a Reflection-t teszteléshez vagy a korlátozások megkerüléséhez használják.