在 PHP 中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP 会将其在内存中销毁,这是 PHP 的 GC 垃圾处理机制,防止内存溢出。
当一个 PHP 线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC 进程一般都跟着每起一个 SESSION 而开始运行的,gc 目的是为了在 session 文件过期以后自动销毁删除这些文件。

class Test{
	public function __construct(){
		echo __CLASS__. "Constructor is called."."</br>";
	}
	public function __destruct(){
		echo __CLASS__."Destructor is called."."</br>";
	}
}
$testObj = new Test();
for ($i = 0; $i < 10; ++$i) {
    echo $i."<br />";
}
$testObj = 123;
echo $testObj;
Test Constructor is called.
0
1
2
3
4
5
6
7
8
9
Test Destructor is called.
123

当系统确定一个变量不再被使用时就会启动垃圾回收机制的。除非处于安全考虑 unset,否则没必要 unset。
当然,系统的垃圾回收机制不是那么的智能,当一个占用资源很大的变量,比如一个图片资源,在不用时应该立刻进行销毁。

此文章已被阅读次数:正在加载...更新于

请我喝杯咖啡吧☕️

木亦 微信支付

微信支付

木亦 支付宝

支付宝