想象一下,我有一个像这样的课程
class MyClass {
private function func1() {
// Much code
func2();
// Much code
}
private function func2() {
echo 'old class';
}
}
是否可以扩展此类并在其中替换函数func2(),以便在新类中,func1()将使用新的func2()。像这样:
class MyNewClass extends MyClass {
private function func2() {
echo 'new class';
}
}
但是我描述的方法仍然会回显MyNewClass的“旧类”,但是如何替换父函数呢?
答案 0 :(得分:0)
听起来你仍然希望从旧类运行func2,但在新类中运行func2中的更多代码。为此,只需在新类函数中调用父级。像这样:
private function func2() {
echo 'new class';
parent::func2();
}
答案 1 :(得分:0)
如评论所述,使用public或protected。可以找到两个修饰符之间的差异here
class MyClass {
public function func1() {
// Much code
func2();
// Much code
}
public function func2() {
echo 'old class';
}
}
class MyNewClass extends MyClass {
private function func2() {
echo 'new class';
}
}