背景
这里记录下PHP中构造函数的注意点。
这里和C/C++、Java不一样,比较灵活,估计是有隐式调用,在此不研究了,记录下注意的地方。
演示
如下项目:
Base.php
- <?php
-  
-  
- class Base{
-  
-     public function __construct(){
-  
-         echo "__construct() : " . __CLASS__ . "<br/>";
-     }
-  
- }
Child.php
- <?php
-  
-  
- class Child extends Base{
-  
-     public function __construct(){
-  
-         echo "__construct() : " . __CLASS__ . "<br/>";
-     }
- }
call.php
- <?php
- include "Base.php";
- include "Child.php";
-  
- $base = new Child();
上面代码的运行截图:

从中可见只有子类的构造函数被调用了。修改Base.php如下:
- <?php
-  
-  
- class Child extends Base{
-     
- }
运行截图如下:

变成了调用父类。
改成这样后:
- <?php
-  
-  
- class Child extends Base{
-  
-     public function __construct(){
-  
-         echo "__construct() : " . __CLASS__ . "<br/>";
-         parent::__construct();
-     }
- }
运行截图:

变成了先子类构造函数,再父类构造函数。
改成这样后:
- <?php
-  
-  
- class Child extends Base{
-  
-     public function __construct(){
-  
-         parent::__construct();
-         echo "__construct() : " . __CLASS__ . "<br/>";
-     }
- }
运行截图:

先父类构造函数,再子类构造函数
结束
PHP中的构造函数比较灵活,和C/C++、Java语言先比,感觉是构造函数+子类函数重写的功能合二唯一。
这里要注意,避免以后在开发PHP时遇到问题。

 
                

















