无法从子类访问父变量


Unable to access a parent variables from child class

我想在子类中重用父类中的一些值,但似乎子类无法读取在父方法中使用上下文$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());