Как объединить два класса в PHP?

Так, чтобы заключительный класс имел все членские переменные/методы в обоих классах

Существует ли простой способ пойти?

7
задан user198729 3 March 2010 в 20:47
поделиться

2 ответа

Вы должны инкапсулировать оба класса в содержащий класс и предоставить соответствующий интерфейс (например, сеттеры / геттеры для частных переменных

class YourFirstClass {
   public $variable;
   private $_variable2;
   public function setVariable2($a) {
       $this->_variable2 = $a;
   }
}

class YourSecondClass {
   public $variable;
   private $_variable2;
   public function setVariable2($a) {
       $this->_variable2 = $a;
   }
}

class ContaingClass {
   private $_first;
   private $_second;
   public function __construct(YourFirstClass $first, YourSecondClass $second) {
       $this->_first = $first;
       $this->_second = $second;
   }
   public function doSomething($aa) {
       $this->_first->setVariable2($aa);
   }
}

Исследование (Google): «композиция важнее наследования»

Сноска: извините за некреативные имена переменных ..

11
ответ дан 6 December 2019 в 23:04
поделиться

Вы просите сделать это во время выполнения или во время программирования?
Я предполагаю, что во время выполнения, в таком случае, что плохого в использовании наследования класса?
Создайте новый класс, который наследуется от двух классов, которые вы хотите объединить.

0
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: