我正在尝试实现类似下面的代码但不能理解一个问题,根据我的理解它应该打印这样的数据:
Foo::testPrivate
Foo::testPublic
但它显示输出为::
Bar::testPrivate
Foo::testPublic
代码是::
class Bar
{
public function test() {
$this->testPrivate();
$this->testPublic();
}
public function testPublic() {
echo "Bar::testPublic\n";
}
private function testPrivate() {
echo "Bar::testPrivate\n";
}
}
class Foo extends Bar
{
public function testPublic() {
echo "Foo::testPublic\n";
}
private function testPrivate() {
echo "Foo::testPrivate\n";
}
}
$myFoo = new Foo();
$myFoo->test();
有人可以解释一下吗?
答案 0 :(得分:0)
根据我的理解
显示输出是正确的,因为你是" Foo"然后调用test()函数后面的" Bar"类
在Bar类的test()函数中,调用testPrivate()使用"这个"关键字所以在同一个类中调用该函数,testPrivate()也是私有的,这就是显示结果的原因:
Bar :: testPrivate
Foo :: testPublic
<强>富:: testPrivate
Foo :: testPublic