让我们想象一下示例 - 我们有三个类
class A {
protected function render()
{
echo 'class A';
}
protected show_error()
{
$this->render();
exit('error');
}
}
class B extends A {
protected function render()
{
echo 'class B';
parent::render();
}
}
class C extends B {
{
}
所以我创建了一些代码
c = new C();
c->show_error();
输出
class B
class A
error
问题是 - 为什么“show_error”方法从B类调用“render”方法? 为什么不从A类本身只调用“渲染”?
有人可以解释一下吗?是否有可能以“我的方式”做到这一点?
谢谢!
答案 0 :(得分:0)
这是基本的OOP
class A {
protected function render()
{
echo 'class A';
}
public function show_error()
{
self::render(); // this is what you're after
exit('error');
}
}
它调用B::render()
的原因是C
扩展B
和B
重新实现render()
另外,show_error()应该是公开的。否则你会收到错误。