我正在尝试为我的网站构建一个基本框架,为此我需要扩展主类,但主类的构造函数只有在我执行以下操作时才有效 -parent::__construct()
这是一个示例:
class prime
{
protected __construct()
{
//code
}
}
class subPrime extends prime
{
protected __construct()
{
//code
}
}
有人知道解决方案吗?
根据php manual parent contructor 不会自动调用:
注意:如果子类定义了构造函数,则不会隐式调用父构造函数。为了运行父构造函数,需要在子构造函数中调用 parent::__construct()。
这是正确的、预期的、期望的和有据可查的行为。
通常,如果您想从子类调用父类的构造函数,您会按照您的建议 (parent::__construct()) 进行操作。或者干脆不覆盖子类中的构造方法。
如果您不需要更改子类中的构造函数行为,则最好不要覆盖父类的方法。