似乎一个类的不同实例可以知道彼此的私有成员变量。
我提供了一些代码来尝试展示我的问题,我将尝试解释它。
我们有一个带有私有成员变量的类,$hidden
. modifyPrivateMember
将 的值设置$hidden
为3
。accessPrivateMember
将 anObject
作为参数并访问其私有 $hidden
成员以返回其值。
示例代码:
<?php
// example.php
class Object {
private $hidden;
public function modifyPrivateMember() {
$this->hidden = 3;
}
public function accessPrivateMember(Object $otherObject) {
return $otherObject->hidden;
}
}
$firstObject = new Object;
$firstObject->modifyPrivateMember();
$otherObject = new Object;
echo $otherObject->accessPrivateMember($firstObject);
上述代码的输出:
$ php example.php
3
谁能解释为什么同一类的其他实例可以访问对象的私有成员?这种表面上的违反范围是否有正当理由?