Я довольно новичок в классах. Я не могу понять, почему мой класс расширения не наследует его родительские свойства, как их набор. Кажется, он наследует свойства по значению своего конструктора.php расширенный класс не наследует родителей текущие значения свойств
Каков правильный способ гарантировать, что текущие значения наследуются?
class Form {
public $data = array();
public $TheValue;
public function __construct($data) {
$this->data = $data;
}
public function UpdateTheValue($x){
$this->TheValue = $x;
}
}
class FormField extends Form {
public function __construct() {
parent::__construct();
}
}
$data = array(1,2,3);
$Form = new Form($data);
$Form->UpdateTheValue('the value should be this');
$FormField = new FormField();
и это является результатом $
поля формыFormField Object
(
[TheValue] =>
[data] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
как вы можете видеть TheValue пусто.
спасибо.
Это не наследует родительское значение, как вы создали новый экземпляр ... если бы вы просто создать 'FormField' в первую очередь вы можете установить значение с помощью' $ FormField-> UpdateTheValue (...) 'Как ни странно, я не уверен, почему он не бросает предупреждение о требуемых параметрах с момента появления нового FormField(); 'эффективно вызывает' new Form() 'без каких-либо' $ data' (что должно быть необходимо) – CD001
Спасибо. Мне нужно вызвать форму заранее в скрипте. и позже, в зависимости от ситуации, введите FormField. Поэтому мне интересно, как сохранить установленные значения из формы? –