私はphpが初めてで、可視性についてのドキュメントを調べていました。ドキュメントのこの例と少し混乱しています。への呼び出しが行われたときに、sへの$myFoo->test()
呼び出しを行うべきではありません。オブジェクトではなくオブジェクトであってはならないということですか?. 私の知る限り(ここでは間違っているかもしれません) 、継承された独自のメソッドがあり、呼び出すと '$this->testPrivate'がs objectである必要があります。のメソッドを呼び出すのはどうですか?Foo
$this->testPrivate();
$this
Foo
Bar
Foo
test()
Bar
$myFoo->test()
$this
Foo
myFoo
Bar
testPrivate
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
?>