前言
今天在写PHP的数据库操作类的时候,在父类和子类都同时使用了构造函数__construct(),出现了数据库连接不上的问题,之前一直都没有发现,后来才发现是子类覆盖了父类,使之父类的数据库信息数组没有生成。
理解
若子类没有定义__construct(),那么父类的__construct()将会继承下来,并且会自动执行。
若子类定义了__construct(),那么将会覆盖掉父类定义的__construct(),这个时候只会执行子类定义的__construct()。
代码说明
文字说明不能很好的表达出意思,看看下面的代码就知道意思了。
<?php
class parentClass{ protected static $number = 0; function __construct(){ self::$number = 1;
}
} class sonClass extends parentClass{ function __construct(){ self::$number = 3;
} public function Getnumber(){ return self::$number;
}
} $obj = new sonClass; $number = $obj->Getnumber(); echo $number;最终的输出结果为:
3



