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:
- 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
-
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.
-
Ö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.