我在標題中提出了一些問題,但我希望你能拿到一些示例代碼。從對象內部訪問同級對象
基本上:
在面向對象的項目,我想訪問在「父」對象中定義的對象。 考慮這個片斷:
class Bar
{
public $var;
public function Bar()
{
$this->var = 'value';
}
}
class Bogus
{
public function Bogus()
{
//Here i want to access the methods and vars of obj1 in the "parent" object
}
}
class Foo
{
public $obj1,$obj2;
function Foo()
{
$this->obj1 = new Bar();
$this->obj2 = new Bogus();
}
}
,你可以看到「兒童」的對象是不是真的蔡爾茲在這個意義上,他們延長了「父」類,但只有對象實例化一個對象內。
有什麼「哦,該死的多數民衆贊成酷」還挺辦法做到這一點還是我必須將對象傳遞給海誓山盟 ,如:
$this->obj2 = new Bogus($this->obj1);
或利用全局對象,instanciating外部類對象:
global $bar,$bogus;
class Foo
{
public $obj1,$obj2;
function Foo()
{
global $bar,$bogus;
$this->obj1 = $bar = new Bar();
$this->obj2 = $bogus = new Bogus();
}
}
我希望你能理解什麼即時得到的;)
'$公衆OBJ1,$ obj2的;'被認爲是不好的做法。它打敗了OOP的目的。通常,您應該使用訪問或方法(getters/setters)來訪問這些屬性,這些屬性應該是私有的或受保護的。它通過你正在做的事情傷害了封裝的概念。 – FinalForm