Неверно создается массив обьектов
До недавних пор писал в процедурном стиле, сейчас понял что уже дорос до изучения ООП и попытался в свой проект добавить функционал уже написанный в стиле ООП. Рисковать не стал и решил сперва протестировать как это вообще работает. Мне нужно создать массив обьектов. Написал следующий код:
<?php
class Obj {
public $index;
public $header;
public $timelabel;
function __construct($index, $header, $timelabel) {
$this->index = $index;
$this->header = $header;
$this->timelabel = $timelabel;
}
}
$obj = [];
for($i = 0; $i < 3; $i++) {
$obj[$i] = new Obj($i, 'Заголовок' . $i, 1000 + $i);
echo var_dump($obj);
}
Я ожидал получить три объекта, доступ к которым я бы мог получить через цикл for
. Вот что я получаю на выходе:
/var/www/haruproject.space/start.php:15:
array(1) {
[0] =>
class Obj#1 (3) {
public $index =>
int(0)
public $header =>
string(19) "Заголовок0"
public $timelabel =>
int(1000)
}
}
/var/www/haruproject.space/start.php:15:
array(2) {
[0] =>
class Obj#1 (3) {
public $index =>
int(0)
public $header =>
string(19) "Заголовок0"
public $timelabel =>
int(1000)
}
[1] =>
class Obj#2 (3) {
public $index =>
int(1)
public $header =>
string(19) "Заголовок1"
public $timelabel =>
int(1001)
}
}
/var/www/haruproject.space/start.php:15:
array(3) {
[0] =>
class Obj#1 (3) {
public $index =>
int(0)
public $header =>
string(19) "Заголовок0"
public $timelabel =>
int(1000)
}
[1] =>
class Obj#2 (3) {
public $index =>
int(1)
public $header =>
string(19) "Заголовок1"
public $timelabel =>
int(1001)
}
[2] =>
class Obj#3 (3) {
public $index =>
int(2)
public $header =>
string(19) "Заголовок2"
public $timelabel =>
int(1002)
}
}
Почему обьект создается больше одного раза за цикл?
Источник: Stack Overflow на русском