クラスのさまざまなインスタンスが、互いのプライベート メンバー変数を認識できるようです。
私の問題を紹介しようとするいくつかのコードを提供しました。それを説明しようとします。
プライベート メンバ変数を持つクラスがあります$hidden
。modifyPrivateMember
の値を$hidden
に設定します3
。をパラメーターとしてaccessPrivateMember
取り、そのプライベートメンバーにアクセスしてその値を返します。Object
$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
オブジェクトのプライベート メンバーが同じクラスの他のインスタンスにアクセスできる理由を説明できる人はいますか? この表向きの範囲の違反には正当な理由がありますか?