代碼如下:
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(); // Bar::testPrivate
// Foo::testPublic
為啥第一行會輸出Bar::testPrivate呢?
還有php官網(wǎng)上,關(guān)于這段代碼的貢獻者回復(fù)中,也找到了一條:
http://www.php.net/manual/zh/language.oop5.visibility.php#87413