我想在子类中重用父类中的一些值,但似乎子类无法读取在父方法中使用上下文$this
的值。
class Mother{
public function __construct($field,$val){
$this->field = $field;
$this->val = $val;
}
public function set(){
return array('val'=>$this->val,
'field'=>$this->field,
'test'=>"test");
}
}
class Sister extends Mother{
public function getVal(){
$val = parent::set();
print_r($val);
}
}
输出将是
Array ( [val] => [field] => [test] => test)
我试过把set()
方法变成静态的,但这与问题没有任何关系。谁能告诉我如何在父类中存储值并将其传递给子类?
你的例子不会打印任何东西,因为你没有调用这个类。
试试这个
class Mother{
public function __construct($field,$val){
$this->field = $field;
$this->val = $val;
}
public function set(){
return array('val'=>$this->val,
'field'=>$this->field,
'test'=>"test");
}
}
class Sister extends Mother{
public function getVal(){
$val = parent::set();
return $val;
}
}
$class = new Sister('test1', 'test2');
print_r($class->getVal());