2012-02-04 131 views
1

我对某些事情感到困惑,并且对于放下我自己的代码有点复杂。
但我会尽我所能解释它。包含后扩展

我有一个像引导程序一样的文件。
在文件的开头我包含了一个设置php,其中有一个名为settings的类。

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

代码:

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

里面的设置类有将运行一些,将设置一些康斯坦斯变量的默认值函数的构造。

现在来了我的问题。

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

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

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

问候。

回答

2

如果Test类都有自己的构造(_construct方法),那么父类的构造将不会被调用,除非你从里子类的构造函数显式调用它像parent::__construct()

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

+0

感谢您的信息。 似乎我需要找到另一种方式来获取他们所属的设置。尽管我已经有了一个想法。 – Controvi 2012-02-04 21:14:28