Loading
0

PHP析构函数的小结

PHP析构函数的小结

析构函数的最佳实践

我们使用析构函数完成对资源的及时释放

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
	//析构函数的最佳实践-及时的释放数据链接
	//用来链接和操作数据库的 
	class DAOMySQL{	
		public $mysql_link;
		//构造函数
		public function __construct($host, $user, $pwd){		
			$this->mysql_link = @mysql_connect($host, $user, $pwd);
		}
		//析构函数
		public function __destruct(){
			echo '<br> 析构函数被调用..';
			echo '<br> 这里我们关闭我们的链接';
			mysql_close($this->mysql_link);
		}
	}
	$dao = new DAOMySQL('localhost', 'root', 'root');
	var_dump($dao->mysql_link);
	mysql_select_db('itbull');
	$sql = 'SELECT * FROM `student`';
	$res = @mysql_query($sql, $dao->mysql_link);
	while($row = mysql_fetch_assoc($res)){
		echo '<pre>';
		var_dump($row);
	}
	$dao = null;
	echo '<br> ----------------------<br>';
	$sql = 'SELECT * FROM `student`';
	$res = @mysql_query($sql);
	while($row = mysql_fetch_assoc($res)){
		echo '<pre>';
		var_dump($row);
	}
	//....
	//....
	//...
	echo '<br> end 结束';
?>

 

说明

(1)   关于在析构函数中释放资源的问题,如果我们对效率没有很高很特殊的要求,完全可以不使用析构函数.

(2)   如果我们不确定代码后面是否还会使用资源(比如链接),那么我们建议最好不要使用析构函数

(3)   项目有特殊和明确的要求时,我们可以使用析构函数,显示的销毁对象是,在析构函数中,释放资源.

垃圾回收机制

PHP析构函数的小结

PHP析构函数的小结

类定义的完善

PHP析构函数的小结

欢迎分享本文,转载请保留出处!—重蔚自留地 站长邮箱:admin@cwhello.com