php面向对象的可见性

vei*_*lig 5 php oop programming-languages

关于PHP中OO visibilty的这一段,我有点困惑.如果有人能向我解释,我很好奇.例子很棒!我的大脑没有想清楚.

http://www.php.net/manual/en/language.oop5.visibility.php

第一段读到

可以通过在声明前加上关键字public,protected或private来定义属性或方法的可见性.声明为public的类成员可以随处访问.声明受保护的成员只能在类本身以及继承和父类中访问.声明为private的成员只能由定义该成员的类访问.

父类如何访问子类成员?

dec*_*eze 5

这就是如何:

class A {
    public function test() {
        $b = new B;
        echo $b->foo;
    }
}

class B extends A {
    protected $foo = 'bar';
}

$a = new A;
$a->test();
Run Code Online (Sandbox Code Playgroud)