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测试).结果是"道具有价值:价值"
在 php 文档http://www.php.net/manual/en/language.oop5.visibility.php#language.oop5.visibility-other-objects它说:
其他物体的可见性
相同类型的对象可以访问彼此的私有成员和受保护成员,即使它们不是相同的实例。这是因为在这些对象内部,具体的实现细节是已知的。
所以这不是一个错误,而是 php 想要的功能。