Junior — Middle
Чӣ гуна метавон усулҳои хусусии синфро аз коди хориҷӣ даъват кард?
sobes.tech AI
Ҷавоб аз AI
Дар PHP, усулҳои хусусии класи наметавонанд мустақиман аз коди беруна дастрасӣ пайдо кунанд, аммо чанд роҳ барои даъват кардани онҳо вуҷуд дорад:
- Истифодаи Reflection API — имкон медиҳад, ки ба методҳои хусусӣ дастрасӣ пайдо кунед ва онҳоро даъват кунед:
class MyClass {
private function secret() {
return "Рамзи метод";
}
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$method = $reflection->getMethod('secret');
$method->setAccessible(true); // Методро дастрас мекунад
echo $method->invoke($obj); // Натиҷа: Рамзи метод
-
Даъват тавассути методи умумӣ дар дохили класи — агар як методи умумӣ вуҷуд дошта бошад, ки хусусиро даъват мекунад.
-
Мерос ва иваз (мегардонад) — аммо методҳои хусусӣ мустақиман мерос гирифта намешаванд.
Бештар, Reflection барои санҷишҳо ё барои убур аз маҳдудиятҳо истифода мешавад.