首页 >
文章列表 > PHP __construct()函数执行顺序详解:构造函数是如何被调用以及其执行步骤是什么?
PHP __construct()函数执行顺序详解:构造函数是如何被调用以及其执行步骤是什么?
130
2024-12-29

__construct() 函数执行顺序详解
问题:
php 中的 __construct() 函数是怎么调用的,执行顺序是如何的?
回答:
__construct() 函数是类的构造函数,在创建新对象时自动调用。它的执行顺序如下:
- 静态属性分配:首先,类的所有静态属性(如 self::$instance)被分配为默认值。
- 构造函数调用:当执行 new myclass() 时,该类的 __construct() 函数被调用。
- 实例属性初始化:构造函数执行后,类的所有实例属性(如 $instance)被初始化。
- 静态属性初始化:随后,类的所有静态属性被再次初始化,使用构造函数中设置的值(如 self::$instance = 'instance')。
举例:
以下代码演示了 __construct() 函数的执行顺序:
class SelfTest {
static $instance;
public function __construct() {
self::$instance = 'instance';
}
public function tank() {
return self::$instance;
}
}
$str = new SelfTest();
echo $str->tank();
在该示例中:
- 首先分配静态属性 self::$instance 为 null。
- 当 new selftest() 被调用时,__construct() 函数被调用。
- 在构造函数中,self::$instance 被初始化为 'instance'。
- 构造函数返回后,静态属性 self::$instance 再次被初始化为 'instance'。
- tank() 方法返回 'instance',因为它从静态属性中检索其值。