在PHP中的抽象

时间:2017-12-10 12:58:56

标签: php abstract

我在PHP和配置类中只有很少的外部服务 - 从.ini文件中获取配置列表的单例类。 对于每个类,我都会做类似于构造函数中的内容:

$this->config = ConfigClass::getConfig() 

我是否需要声明一个抽象类,只有它们在构造函数中放置该配置类而不仅仅是扩展该类?

例如:我还要添加记录器 我很乐意得到一些例子

1 个答案:

答案 0 :(得分:1)

抽象类用作派生类的模板。必须在派生类中覆盖在基本抽象类中声明的具有abstract关键字的任何方法。

请参阅php.net documentation on abstract classes

对于您的示例,只需执行以下操作:

class Base {
    public function __construct()
    {
        $this->config = ConfigClass::getConfig();
    }
}

class Derived extends Base {
}

但是,注意 - 如果你想在派生类的构造函数中放置一些东西,你必须明确地调用它,如下所示:

class Base {
    public function __construct()
    {
        $this->config = ConfigClass::getConfig();
    }
}

class Derived extends Base {
    public function __construct()
    {
        parent::__construct();
        // Other code
    }
}