Здравствуйте. Есть вот такой код:
class Model_Catalog extends ORM {
private function func2($category_id, $result_array) {
$children = ORM::factory('Catalog')->where('catalog_id', '=', $category_id)->find_all()->as_array();
if (count($children) > 0) {
foreach ($children as $c) {
$result_array[] += $c;
$result_array += $this->func2($c->id, $result_array);
}
}
return $result_array;
}
public function func1() {
$all_elements = $this->func2($this->id, array());
return $all_elements;
}
}
Почему вот эта строка:
$result_array[] += $c;
добавляет в $result_array единицу? А если написать вот так:
$result_array[] += $c->id;
, то добавит id экземпляра модели Catalog. И если я перед
$result_array[] += $c;
напишу вот так:
$test_value = $c;
, то в test_value будет экземпляр модели. Так почему же в массив добавляется единица вместо экземпляра модели? Как мне это исправить?