@maximka787
Кодер

Как правильно инициализировать объект в объекте?

Ребят, подскажите. Нужно в первом классе, присвоить свойству $this->a массив из внешнего класса (Test2).
class Test{
  protected $a = array();

  public function __construct(){
    $tmp = new Test2();
    $this->a = $tmp->get();
  }
}

class Test2{
  private $data = array();

  public function __construct(){
    $this->data = range(1,100);
  }

  public function get(){
    return $this->data;
  }
}

Правильно я сделал в данном примере?
Сейчас нужно именно вот так вызвать один класс, внутри другого.
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 3
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
почитай о Dependency Injection
Ответ написан
@ivorobioff
Software Engineer
Тут правильней всего делать инъекцию зависимости. А именно, нужно Test2 вколоть в Test
class Test {
  protected $a = array();

  public function __construct(Test2 tmp){
    $this->a = $tmp->get();
  }
}

class Test2{
   // ...
}


потом где-то в коде:

test = new Test(new Test2());
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Zoon Москва
от 140 000 до 220 000 руб.
Amigoweb Магнитогорск
от 50 000 до 70 000 руб.
ALT IT SOLUTIONS Москва
от 80 000 до 100 000 руб.