Php 扩展构造函数而不指定参数
我有一个Field类,它必须在其他不同的字段上进行多次扩展,我们称它们为ChildFieldOne和ChildFieldTwo,依此类推 其中一些子字段不需要声明_构造函数,因为它与扩展字段类相同。但是他们中的许多人必须是自己的构造函数才能执行额外的操作Php 扩展构造函数而不指定参数,php,class,constructor,extend,Php,Class,Constructor,Extend,我有一个Field类,它必须在其他不同的字段上进行多次扩展,我们称它们为ChildFieldOne和ChildFieldTwo,依此类推 其中一些子字段不需要声明_构造函数,因为它与扩展字段类相同。但是他们中的许多人必须是自己的构造函数才能执行额外的操作 class Field { public function __construct(string $name, array $parameters = [], int $index = 0) { ... do Field
class Field
{
public function __construct(string $name, array $parameters = [], int $index = 0)
{
... do Field stuff
}
}
class ChildFieldOne extends Field
{
}
class ChildFieldTwo extends Field
{
public function __construct(string $name, array $parameters = [], int $index = 0)
{
parent::__construct($name, $parameters, $index)
... do ChildFieldTwo extra stuff
}
}
假设我必须在字段的构造函数中添加一个新参数,我还必须手动将它们添加到每个子类中。我有大约20个扩展类,它们有自己的构造函数,调用父类,然后做自己的事情。在每个类上添加一个“Field$parent=null”是一个混乱
class Field
{
public function __construct(string $name, array $parameters = [], int $index = 0, Field $parent = null)
{
... do Field stuff
}
}
class ChildFieldTwo extends Field
{
public function __construct(string $name, array $parameters = [], int $index = 0, Field $parent = null)
{
parent::__construct($name, $parameters, $index, $parent)
... do ChildFieldTwo extra stuff
}
}
有没有像这样声明扩展类的方法
class ChildFieldTwo extends Field
{
public function __construct(... $args)
{
parent::__construct($args)
... do ChildFieldTwo extra stuff
}
}
我尝试了类似的方法,但由于$args是数组,所以在字段类型差异方面出现了错误。我怎么能做我需要的