在PHP中访问父属性和重写方法
发布时间:2020-05-25 09:21:47 所属栏目:PHP 来源:互联网
导读:我有以下父母和子课程: abstract class ParentObj { private $data; public function __construct(){ $this-data = array(1,2,3); var_dump($this-data); $this-method(); } publ
|
我有以下父母和子课程: abstract class ParentObj {
private $data;
public function __construct(){
$this->data = array(1,2,3);
var_dump($this->data);
$this->method();
}
public function method(){
echo "ParentObj::method()";
}
}
class ChildObj extends ParentObj {
public function __construct(){
parent::__construct();
var_dump($this->data);
}
public function method(){
echo "ChildObj::method()";
}
}
预期产量: array(1,3) ChildObj::method() array(1,3) 实际输出: array(1,3) ParentObj::method() NULL 问题是,子对象无法访问数据属性,父对象拒绝调用子进程中的重写方法. 我做错了什么,或者有没有任何想法? 编辑:我应该澄清我将ChildObj实例化为$child = new ChildObj() 您已将数据声明为私有,因此ChildObj将无法访问它 – 您需要将其保护为:protected $data; 我的PHP(5.2.8)打印ChildObj :: method() – 你运行的是旧版本吗? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
