代码如下:
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呢?
一些资料:
https://www.jb51.net/article/31709.htm
还有php官网上,关于这段代码的贡献者回复中,也找到了一条:
http://www.php.net/manual/zh/language.oop5.visibility.php#87413
您可能感兴趣的文章:PHP类与对象后期静态绑定操作实例详解详解php中的类与对象(继承)php基础知识:类与对象(5) staticphp基础知识:类与对象(4) 范围解析操作符(::)php基础知识:类与对象(3) 构造函数和析构函数php基础知识:类与对象(2) 自动加载对象php基础知识:类与对象(1)PHP学习记录之面向对象(Object-oriented programming,OOP)基础【接口、抽象类、静态方法等】PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解PHP中类与对象功能、用法实例解读
private
对象
php类
PHP