2012-09-01 73 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