PHP中__construct()函数的调用和执行顺序是怎样的?
__construct() 函数调用和执行顺序
如何在 php 中调用 __construct() 函数以及它的执行顺序一直是程序员需要了解的问题。让我们深入探讨一下这个问题。
问题:
以下 php 代码中的 __construct() 函数是如何调用的,以及它的执行顺序是怎样的?
立即学习“PHP免费学习笔记(深入)”;
class self_test { static $instance; public function __construct() { self::$instance = 'instance'; // 静态属性只能通过 self 来访问 } public function tank() { return self::$instance; // 访问静态属性 }}$str = new self_test();echo $str->tank();
解答:
__construct() 函数是在使用 new 关键字创建对象时调用的。在上面的例子中,$str = new self_test(); 语句触发 __construct() 函数的调用。
__construct() 函数执行的顺序如下:
- 类实例化:当执行 new self_test() 时,会创建一个新的 self_test 类实例。
- 构造函数调用:__construct() 函数作为类的构造函数,在实例化后立即调用。
- 静态属性初始化:在 __construct() 函数内,self::$instance 静态属性被初始化为 'instance'。
- 对象创建:完成 __construct() 函数的执行后,self_test 类的对象被创建并存储在 $str 变量中。
- 方法调用:随后调用 $str->tank() 方法,访问和返回静态属性 self::$instance 的值。
因此,__construct() 函数的调用和执行顺序是:
- 实例化 self_test 类
- 调用 __construct() 构造函数
- 初始化静态属性
- 创建对象
- 调用 tank() 方法