Junior — Middle
Kā ārējais kods var izsaukt klases privātās metodes?
sobes.tech AI
Atbilde no AI
PHP, klases privātās metodes nav tieši pieejamas ārējā kodā, bet ir vairākas veidi, kā tās izsaukt:
- Reflection API izmantošana — ļauj piekļūt privātajām metodēm un tās izsaukt:
class MyClass {
private function secret() {
return "Noslēpumainā metode";
}
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$method = $reflection->getMethod('secret');
$method->setAccessible(true); // Padara metodi pieejamu
echo $method->invoke($obj); // Izvadīs: Noslēpumainā metode
-
Izsaukšana caur publisku metodi klases iekšpusē — ja ir publiska metode, kas izsauc privāto.
-
Mantošana un pārrakstīšana (ierobežota) — bet privātās metodes netiek tieši mantošanas.
Visbiežāk Reflection tiek izmantota testēšanai vai ierobežojumu apietšanai.