为什么我可以在父php类中访问私有属性?

时间:2012-11-28 20:55:37

标签: php class

我们最近发现了这种奇怪的PHP行为。访问父类中的私有应该不起作用。这是一个功能吗?也许有人可以解释一下。

// PHP classes

class Father {
    // private property
    private $value = 'test';
}

Class Child extends Father {

    // Should fail, se
    public function setValue() {
     $this->value = 'why does';
    }

    public function getValue() {
     return $this->value;
    }
}


$c = new Child();

// should fail!
$c->setValue();
echo $c->getValue() . "|";

// should fail!!!!!!!
$c->value = "it work?";
echo $c->getValue();

// output: why does|it work?

1 个答案:

答案 0 :(得分:6)

你不是在改变父亲的私有财产,而是为孩子引入新的财产value