PHP类的私有属性和方法

时间:2013-08-14 14:17:53

标签: 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();

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

2 个答案:

答案 0 :(得分:2)

只要你在课堂上,就可以在任何实例上调用你的班级私有方法。

答案 1 :(得分:2)

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

  

来自其他对象的可见性

     

相同类型的对象可以私密访问彼此   受保护的成员,即使它们不是相同的实例。这是   因为实现具体细节已经知道了   在那些物体里面。

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