gpt4 book ai didi

php - 在 PHP 中的子构造函数之前调用父构造函数

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

我想知道是否有可能在 child 的 __construct() 之前调用 parent __construct() 并在 PHP 中继承。

例子:

class Tag {
__construct() {
// Called first.
}
}

class Form extends Tag {
__construct() {
// Called second.
}
}

new Form();

理想情况下,我可以在他们之间做点什么。如果这不可能,是否有替代方法可以让我这样做?

我想这样做的原因是能够加载一组特定于标签的默认设置,当调用 __construct() 时 Form 可以使用这些标签。

编辑:抱歉忘了添加这个。我宁愿不从子类调用父类。这仅仅是因为当您将其作为参数传递时,它会向 child 公开一些私有(private)数据(对于 parent )

这就是我想做的:

$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.

Tag.php

class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}

Form.php

class Form extends Tag {

__construct() {
echo $this->publicInfo;
}
}

有意义吗?

谢谢!马特·穆勒

最佳答案

只需在 child 中调用 parent::__construct。

class Form extends Tag
{
function __construct()
{
parent::__construct();
// Called second.
}
}

关于php - 在 PHP 中的子构造函数之前调用父构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079883/

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