سلام خسته نباشید توی مثال زیر خروجی برام ابهام داره مگه متد test توی کلاس Foo عینا کپی نمیشه؟ خب چرا testPrivate رو برای Bar صدا میزنه؟ اگه test داخل Foo باشه پس دیگه به متد testPrivate کلاس Bar دسترسی نداره و چرا اون رو برای کلاس Foo صدا نمیزنه؟
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();
// output
// Bar::testPrivate
// Foo::testPublic