如何调用受保护的功能?

时间:2017-07-08 12:25:29

标签: php inheritance protected

如何在不触及课程lmn()的课程B的情况下调用功能A

 class A extends B{
     public function abc(){
         return "abc";
     }
     ...
 }

 class B{
     public function xyz(){
         return "xyz";
     }
     ...
 }

 class C{
     protected function lmn(){
         return "lmn";
     }
     ...
 }

请指导我这个

2 个答案:

答案 0 :(得分:1)

您可以创建某种从C扩展的代理类,并提供一种公共访问方法:

class ProcyForC extends C {
  public function getLmn() {
    return $this->lmn();
  }
}

echo (new ProxyForC())->getLmn();

答案 1 :(得分:-1)

你无法调用它,因为protected表示可以从子类调用的函数。

在你的情况下,你需要创建一个B的实例来在任何类中调用lmn。