1 回答

TA贡献1784条经验 获得超2个赞
它们是可访问的,但它们将是null因为它们没有从子进程传递给父构造函数:
(new ChildClass(1,2))->anotherFakeMethod();
沙盒
输出
NULL
null在这种情况下,您的课程会产生预期的结果。那么它会根据它的编码方式产生我期望的结果。
要修复它,您必须通过子类的构造函数将该数据传递回父类,或者删除子类的构造函数。像这样:
class ChildClass extends ParentClass {
public function __construct($prop1, $prop2) {
parent::__construct($prop1, $prop2);
}
....
}
以上改动后:
(new ChildClass(1,2))->anotherFakeMethod();
输出
int(1)
沙盒
这是我对这一行的期望,因为它基本上是构造函数中使用的第一个参数:
var_dump($this->prop1);
如果您知道子类中的内容,您也可以这样做:
public function __construct() {
parent::__construct(1, 2); //say I know what these are for this child
}
您当然可以在新的构造函数中手动设置它们,但在这种情况下,这将是 WET(将所有内容写入两次)或不必要的重复。
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报