相关疑难解决方法(0)

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

我想知道是否有可能在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)

合理?

谢谢!马特穆勒

php oop inheritance

29
推荐指数
1
解决办法
2万
查看次数

标签 统计

inheritance ×1

oop ×1

php ×1