Mat*_*att 29 php oop inheritance
我想知道是否有可能在PHP的继承之前调用子__construct()之前的父__construct().
例:
class Tag {
__construct() {
// Called first.
}
}
class Form extends Tag {
__construct() {
// Called second.
}
}
new Form();
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以在它们之间做点什么.如果这是不可能的,有没有替代方案,这将允许我这样做?
我想这样做的原因是能够加载一组特定于Form的标签可以在调用__construct()时使用的默认设置.
编辑:抱歉忘了添加这个..我宁愿不从子类调用父类.这只是因为它将一些私有数据(对于父级)暴露给子级,当您将其作为参数传递时
这就是我想要做的:
$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Run Code Online (Sandbox Code Playgroud)
Tag.php
class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}
Run Code Online (Sandbox Code Playgroud)
form.php的
class Form extends Tag {
__construct() {
echo $this->publicInfo;
}
}
Run Code Online (Sandbox Code Playgroud)
合理?
谢谢!马特穆勒
Den*_*huk 46
只需在子节点中调用parent :: __ construct即可.
class Form extends Tag
{
function __construct()
{
parent::__construct();
// Called second.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22032 次 |
| 最近记录: |