所以我有以下哪些錯誤,但它似乎像PHP應該認識到,它只需要只有一個副本。我應該創建這個作爲參考去除新對象的實例嗎?PHP和使用組合
<?php
class A {
public function __construct(){
echo "within A<br />";
$this->b=new &B();
}
}
class B{
public function __construct(){
echo "within B<br />";
$this->a=new A();
}
}
$jt=new A();
$ar=new B();
THX
編輯 - ?本來可以被問得更好。我意識到大部分問題都提出來了。將轉移到靜態函數。
當你做'new ...()'你告訴php用這個類的類型創建一個新的對象。它應該如何知道你只想要一個B的單個實例? (提示:使用單例模式) – knittl 2011-04-18 12:35:59
您可能想要將'A'對象作爲構造函數參數傳遞給'B',反之亦然,而不是無條件地在構造函數中創建另一個類的新實例。 – Archimedix 2011-04-18 12:36:09
它需要是'$ this-> b =&new B();' – JohnP 2011-04-18 12:37:24