在扩展课程中进行私人通话?

net*_*iul 4 php overriding private

我有一个包含函数funcB()的父类,我想通过在这个函数中进行一些更改来覆盖更好的函数.父类中的此函数调用同一类中的另一个私有函数.

示例代码:

class classA {
  private function funcA() {
    return "funcA called";
  }

  public function funcB() {
    $result = $this->funcA();
    return $result;
  }
}

class ClassB extends ClassA {
  public function funcB($a) {
    //do some more stuff
    $result = $this->funcA();
    return $result;
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到致命错误,因为我不允许从ClassB内调用私有父:: funcA()函数.但必须要求召集.这怎么可能呢?

Fel*_*ing 11

相反,声明private方法protected.

请参阅有关可见性的文档:

声明为public的类成员可以随处访问.声明受保护的成员只能在类本身以及继承和父类中访问.声明为private的成员只能由定义该成员的类访问.