继承类有自己的构造函数时,就不会去执行父类的构造函数。就是说,构造函数只会自动执行一次
如果你需要父类的构造函数被执行的话,需要在构造函数中显式的执行
$this->父类名();

parent::__construct();//php5PHP 不会从派生类的构造函数中自动调用基类的构造函数。恰当地逐次调用上一级的构造函数是用户的责任。

解决方案 »

  1.   

    几乎大多数的面向对象的语言(C++, JAVA, C#, Delphi Pascal...),是不支持构造函数显式继承的如果没有显式声明的构造函数的话,它们都有Compiler提供的默认构造函数
    如果父类声明了自己的构造函数,子类中没有显式的构造函数声明的话,那么子类将继承父类的构造函数
    如果子类中显式的声明的构造函数,且与父类形式一样的话,那么父类的构造函数将被隐藏,意即不被执行(声明重载的时候是例外)
    (如果声明的构造有别于父类的话,会因其语言的不同而有差异)
    如果此时想要执行父类构造函数的话,那么必须要显式的调用父类的构造函数
    C++,C#提供了base
    JAVA提供了super
    Delphi Pascal提供了inherited;