【问题标题】:How to call protected function?如何调用受保护的函数?
【发布时间】:2017-12-12 15:54:59
【问题描述】:

如何在不触及类B的情况下从类A调用函数lmn()

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

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

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

请指导我

【问题讨论】:

  • 你不能。 B 类(也不是 A 类)不继承自 C 类。
  • 你想在哪里调用它?

标签: php inheritance protected


【解决方案1】:

您可以制作某种从 C 扩展而来的代理类,并提供公共访问方法:

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

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

【讨论】:

    猜你喜欢
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2015-08-26
    • 2016-03-26
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多