无法从子类访问父变量

时间:2015-09-01 11:56:41

标签: php oop

我想重用子类中父类的一些值,但似乎子类无法读取父方法中使用上下文$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()方法设为静态,但不会与问题有任何关系。谁能告诉我如何将值存储在父类中并将其传递给子类?

1 个答案:

答案 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());