Я создал родительский класс (A) и изменил некоторые его общедоступные и защищенные свойства.передать модифицированные родительские свойства дочернему классу
Я создал дочерний класс (B), который проходит A.
Я могу видеть родительские свойства в случае B после его создания.
Проблема: унаследованные свойства B имеют значения по умолчанию A, начиная с того, как я их модифицировал.
Я хочу, чтобы B сохранял измененные значения унаследованных свойств.
Как?
class Dashboard {
protected $testBusinessesIds = '';
public function test_bids($a){
$this->testBusinessesIds = $a;
}
}
class DashboardDBHelper extends Dashboard{
protected $withoutTestBids = '';
public function __construct(){
if($this->testBusinessesIds != '')
$this->withoutTestBids = " AND B.`id`";
}
}
$d = new Dashboard();
$d->test_bids(23);
$dh = new DashboardDBHelper();
print_r($dh->withoutTestBids);
Я вижу: '' вместо 'AND B. id
'
@ ClémentMalet: Если он изменяет значение 'protected $ value' в классе A. Класс B всегда получает значение по умолчанию для класса A. Это нормально. Я согласен, нам нужен код. Действительно, следуя вашим потребностям, одним из возможных решений было бы использовать ключевое слово 'static'. – Debflav
Конечно, у вас есть ** два независимых экземпляра объекта **. Они не обмениваются данными, независимо от того, являются ли они одного класса или нет. Более конкретный пример использования может понадобиться, чтобы рассказать вам, как лучше всего делать то, что вы пытаетесь сделать в ООП. 'static' может быть или не быть решением * bad *. – deceze