【发布时间】:2013-08-16 13:19:19
【问题描述】:
注意到一些关于 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();
结果不是我所期望的错误,因为我正在调用一个私有方法(在 PHP 5.3.10-1ubuntu3.7 上使用 Suhosin-Patch 进行了测试)。结果是“Prop has value: value”
【问题讨论】:
-
如果不是从公共方法调用私有方法,您会如何期望?
-
具体来说,您不是在调用私有方法,而是在调用一个调用私有方法的公共方法。公共方法可以访问私有方法,但调用
$obj->echoProp();将失败,因为在这种情况下您正在调用私有方法。如果您的期望是真实的,那么没有任何东西可以调用私有方法。
标签: php oop private private-members private-methods