Junior — Middle
Kuidas saab väliskood kutsuda klassi privaatsed meetodid?
sobes.tech AI
Vastus AI-lt
PHP-s ei ole klassi privaatseid meetodeid otseselt välise koodi poolt kättesaadavad, kuid on mitu viisi nende kutsumiseks:
- Reflection API kasutamine — võimaldab pääseda ligi privaatsetele meetoditele ja neid kutsuda:
class MyClass {
private function secret() {
return "Salajane meetod";
}
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$method = $reflection->getMethod('secret');
$method->setAccessible(true); // Teeb meetodi kättesaadavaks
echo $method->invoke($obj); // Näitab: Salajane meetod
-
Kutsumine läbi avaliku meetodi klassi sees — kui on olemas avalik meetod, mis kutsub privaatset.
-
Pärimine ja ülekirjutamine (piiratud) — kuid privaatseid meetodeid ei pärida otseselt.
Enamasti kasutatakse Reflectioni testimiseks või piirangute ületamiseks.