我想重用子类中父类的一些值,但似乎子类无法读取父方法中使用上下文$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()
方法设为静态,但不会与问题有任何关系。谁能告诉我如何将值存储在父类中并将其传递给子类?
答案 0 :(得分:2)
您的示例不会打印任何内容,因为您不会打电话给该课程。
试试这个
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());