PHP类的私有属性和方法

Emi*_*Emi 5 php oop private private-members private-methods

注意到PHP的类,我不知道它是一个错误或它为什么工作,这是代码:

<?php
class A {
    private $prop = 'value';

    public function fun()
    {
        $obj = new A;
        $obj->echoProp();
    }

    private function echoProp()
    {
        echo 'Prop has value: '.$this->prop;
    }
}

$obj = new A;
$obj->fun();
Run Code Online (Sandbox Code Playgroud)

结果不是我所期待的错误,因为我正在调用一个私有方法(在PHP 5.3.10-1ubuntu3.7上用Suhosin-Patch测试).结果是"道具有价值:价值"

ben*_*tar 2

在 php 文档http://www.php.net/manual/en/language.oop5.visibility.php#language.oop5.visibility-other-objects它说:

其他物体的可见性

相同类型的对象可以访问彼此的私有成员和受保护成员,即使它们不是相同的实例。这是因为在这些对象内部,具体的实现细节是已知的。

所以这不是一个错误,而是 php 想要的功能。