我有一个包含函数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;
}
}
我收到致命错误,因为我不允许在ClassB中调用私有父:: funcA()函数。但必须要求召集。这怎么可能呢?
答案 0 :(得分:11)
将private
方法声明为protected
。
See the documentation about visibility:
声明为public的类成员可以随处访问。声明受保护的成员只能在类本身以及继承和父类中访问。声明为私有的成员只能由定义成员的类访问。