Junior — Middle
Ako volať súkromné metódy triedy z vonkajšieho kódu?
sobes.tech AI
Odpoveď od AI
V PHP-ju nie súkromné metódy triedy nie sú priamo dostupné z vonkajšieho kódu, ale existuje niekoľko spôsobov, ako ich volať:
- Použitie Reflection API — umožňuje získať prístup k súkromným metódam a ich volanie:
class MyClass {
private function secret() {
return "Tajná metóda";
}
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$method = $reflection->getMethod('secret');
$method->setAccessible(true); // Umožní prístup k metóde
echo $method->invoke($obj); // Vypíše: Tajná metóda
-
Volanie cez verejnú metódu v triede — ak existuje verejná metóda, ktorá volá súkromnú.
-
Dedičstvo a prepísanie (obmedzené) — ale súkromné metódy sa nezdedia priamo.
Najčastejšie sa Reflection používa na testovanie alebo na obchádzanie obmedzení.