包含后扩展

时间:2012-02-04 20:43:33

标签: php constructor include extends

我对某些事感到困惑,而且放下我自己的代码有点复杂 但我会尽力解释它。

我有一个像bootstrap一样起作用的文件 在文件的开头,我包含一个名为settings的设置php。

在它之后,我实例化设置类 在它之后我包含一个php文档,它将实例化我系统中的所有其他类。

代码:

include('settings.php');
$settings = new Settings();
include('classes.php');

在settings类中有一个构造函数,它将运行许多函数,这些函数将为默认值设置一些constance变量。

现在出现了我的问题。

例如,可以说在classes.php中实例化了一个“Test”类。 这意味着我可以从设置类扩展该类。

但是当我这样做时,构造函数将再次运行并获得已经定义了constance vars的错误。

我的问题是......在实例化测试类时,php会运行设置类的构造吗?

问候。

1 个答案:

答案 0 :(得分:2)

如果Test类有自己的构造函数(_construct方法),那么除非从parent::__construct()之类的子类构造函数中显式调用它,否则不会调用父构造函数。

如果Test类没有__construct方法,那么将调用父构造函数(如果有的话)。