gpt4 book ai didi

PHP:如何将子类 __construct() 参数传递给 parent::__construct()?

转载 作者:IT王子 更新时间:2023-10-29 01:00:04 24 4
gpt4 key购买 nike

我有一个这样的 PHP 类:

class ParentClass {
public function __construct($arg) {
// Initialize a/some variable(s) based on $arg
}
}

它有一个子类,例如:

class ChildClass extends ParentClass {
public function __construct($arg) {
// Let the parent handle construction.
parent::__construct($arg);
}
}

如果由于某种原因,ParentClass 需要更改以采用多个可选参数,我希望 Child 类提供“以防万一”?除非我重新编码 ChildClass,否则它只会将一个参数传递给构造函数,并且只会传递那个参数。

这种做法是否如此罕见或如此糟糕,以至于通常的情况是 ChildClass 不需要从采用不同参数的 ParentClass 继承?

基本上,我已经在 Python 中看到,您可以通过 somefunction(*args) 将可能未知数量的参数传递给函数,其中 'args' 是某种数组/可迭代对象。 PHP 中是否存在类似的东西? 或者我应该在继续之前重构这些类吗?

最佳答案

这可以在没有 call_user_func_array() 的 PHP >= 5.6 中通过使用 ... (splat) operator 来完成。 :

public function __construct()
{
parent::__construct(...func_get_args());
}

关于PHP:如何将子类 __construct() 参数传递给 parent::__construct()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1603469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com