PHP笔记-PHP中构造函数要注意的地方

x33g5p2x  于2022-01-11 转载在 PHP  
字(0.9k)|赞(0)|评价(0)|浏览(426)

背景

这里记录下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时遇到问题。

相关文章