類與對象 > 通路控制(可見性)
同一個類的對象即使不是同一個執行個體也可以互相通路對方的私有與受保護成員。這是由于在這些對象的内部具體實作的細節都是已知的。
通路同一個對象類型的私有成員
<?php
class Test
{
private $foo;
public function __construct($foo)
{
$this->foo = $foo;
}
private function bar()
{
echo 'Accessed the private method.';
}
public function baz(Test $other)
{
// We can change the private property:
$other->foo = 'hello';
var_dump($other->foo);
// We can also call the private method:
$other->bar();
}
}
$test = new Test('test');
$test->baz(new Test('other'));
?>
//發現:通過傳入執行個體對象,實作了在外部通路私有方法和屬性