php 函数根据可析构性分为两类:可析构函数和不可析构函数。可析构函数可进一步细分为引用计数和析构回调两种,分别在引用计数归零和对象销毁时调用析构方法;不可析构函数则在函数执行结束后自动销毁。
php函数分类:可析构和不可析构
PHP函数根据是否可以被析构,分为两类:
可析构函数
立即学习“PHP免费学习笔记(深入)”;
可析构函数可以根据其行为进一步细分为两类:
-
引用计数:当变量引用对象时,它的引用计数会增加。当最后一个引用被析构时,对象将被销毁。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class
MyClass
{
public
function
__construct()
{
echo
"Constructing MyClass\n"
;
}
public
function
__destruct()
{
echo
"Destructing MyClass\n"
;
}
}
$obj
=
new
MyClass();
输出:
1
2
Constructing MyClass
Destructing MyClass
-
析构回调:当对象被销毁时,将自动调用一个回调函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class
MyClass
{
public
static
function
destructioncallback()
{
echo
"MyClass has been destructed\n"
;
}
public
function
__construct()
{
register_shutdown_function([
'MyClass'
,
'destructionCallback'
]);
echo
"Constructing MyClass\n"
;
}
public
function
__destruct()
{
echo
"Destructing MyClass\n"
;
}
}
$obj
=
new
MyClass();
输出:
1
2
3
Constructing MyClass
Destructing MyClass
MyClass has been destructed
不可析构函数
不可析构函数没有明确的析构步骤。它们在函数执行结束后自动销毁。
1 2 3 4 5 6 7 8 |
|
输出:
1 2 |
|
实战案例
在实际应用中,可以利用析构函数实现以下功能: