从同一类创建多个对象

时间:2018-10-08 13:38:07

标签: php

我有一个非常简单的问题,但我不明白。我有一个带有一些值的课程,如下所示:

class test_one{
    private $value1, $value2;

    public function __construct($value1,$value2){
        $this->$value1 = $value1;
        $this->$value2 = $value2;
    }
}

现在我想创建二十个此类的对象。

C#中的代码看起来像这样:

ref = new test_one[20];

所以我的问题是:如何创建20个相同类的对象并将其保存在引用中,以便可以通过它们的索引来查找它们?

2 个答案:

答案 0 :(得分:1)

您可以按照以下方式进行操作:

<?php
class test_one{
    private $value1, $value2;

    public function __construct($value1,$value2){
        $this->value1 = $value1;
        $this->value2 = $value2;
    }
}

for($i=1; $i<=20; $i++) {
    $var = "object" . $i;
    $$var = new test_one($value1 = $i, $value2 = $i*$i);
}

 // show, say, object20
 echo '<pre>';
 print_r($object20);
 echo '</pre>';

输出:

test_one Object
(
    [value1:test_one:private] => 
    [value2:test_one:private] => 
    [20] => 20
    [400] => 400
)

答案 1 :(得分:1)

您需要一个循环,如评论中所述。简单的循环可以是:

$i = 0;
while ($i++ < 20) {
    $arr_of_objects[] = new test_one();
}

此外,正如注释也是所注意到的那样,无需使用$就可以为类属性分配值:

public function __construct($value1,$value2){
    $this->value1 = $value1;
    $this->value2 = $value2;
    //----^ no $ here
}