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

  1. 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
  1. Volanie cez verejnú metódu v triede — ak existuje verejná metóda, ktorá volá súkromnú.

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