前言
今天在写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
博主的文章写得非常棒 很喜欢
@澳门银座 谢谢赏识