-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.
4

2 回答 2

1

只是用 Class1 的实例填充数组?

$var1 = array(new Class1(), new Class1(), newClass()); //Array of 3 Class1 instances
于 2012-09-01T13:19:08.480 回答
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];
于 2012-09-01T13:30:35.993 回答