2012-09-01 99 views
-2

我想使var1成爲Class1實例的數組。這個數組必須在Class2中定義。如何正確執行此操作?其他類中的類對象數組

class Class1 { 
    public $values = array(); 
}   

class Class2 { 
    public $var1 = array(); 
    public $var1_ptr; 
    public function setPtr(Class1 $var1) { 
     $this->var1_ptr = $var1; 
    } 
} 

$cl2 = new Class2(); 
$cl2->sePtr($cl2->$var1[0]); // Here I want to access the first array's object of Class1. 
+0

我不明白你想要什麼。你想擁有一個Class1對象的數組? – Rengers

+0

這看起來像是PHP和C++的組合。什麼是_ptr? – Samson

+0

@Rengers:是的,我想讓它在Class2中,這樣Class2的每個對象都會鏈接到不同的Class1對象數組。 – Gusgus

回答

1

您可以將對象存儲爲數組元素,並且不會像訪問它們自己的變量一樣訪問它們。這同樣適用於將它們存儲爲對象的屬性。

class Class1 { 
    public $values = array(); 
} 

class Class2 { 
    public $var1=array(); 
} 

$cl2=new Class2(); 
$cl2->var1[]=new Class1; //Do this as many times as you want to store Class1 objects 

檢索存儲在陣列中的$ i個對象的$ j個值:

$retrieved_object=$cl2->var1[$i]->values[$j]; 
1

只需使用Class1的實例填充數組?

$var1 = array(new Class1(), new Class1(), newClass()); //Array of 3 Class1 instances