PHP的构造方法是对象创建完成后第一个被对象自动调用的方法。对于每个声明的类,它是一个特殊的成员方法;如果一个类没有直接声明构造方法,那么这个类会自动默认生成一个没有带任何参数且内容为空的构造方法。
以下是一个我自己写的一个带有显式构造方法的数据库类。
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
5 <title>PHP数据库类</title>
6 </head>
7
8 <body>
9 <?php
10 /**********************
11 *内容:定义一个数据库连接类
12 *Author:瞎猫碰上死老虎
13 *Date:2/5/2015
14 *
15 **********************/
16
17 class sql{
18 var $localhost; //服务器地址
19 var $name; //用户名
20 var $key; //用户密码
21 var $db; //数据库名称
22 var $conn; //数据库连接句柄
23
24
25 //构造方法
26 public function __construct($localhost,$name,$key,$db){
27 $this->localhost=$localhost;
28 $this->name=$name;
29 $this->key=$key;
30 $this->db=$db;
31 $this->connect(); //连接数据库
32 }
33
34 //私有方法,连接数据库
35 private function connect(){
36 $this->conn=mysql_connect($this->localhost,$this->name,$this->key);
37 mysql_select_db($this->db,$this->conn);
38 }
39
40 //公共方法,数据库查询
41 public function chaxun($sql){
42 return mysql_query($sql,$this->conn);
43 }
44
45 }
46
47
48 $sql='select * from term;'; //从term 表中查询全部信息
49 $cx=new sql ('localhost','root','root','chemhelper');
50 $arryobj=$cx->chaxun($sql);
51
52 //以下查询得到数据并打印出来
53 echo '<table border="1">';
54
55 while($arrayshuju=mysql_fetch_array($arryobj)){
56 echo '<tr><td>'.$arrayshuju['term'].'</td><td>'.$arrayshuju['explain'].'</td></tr>';
57 }
58
59 echo '</table>'
60
61 ?>
62
63 </body>
64 </html>
当实例化一个sql类的时候,会自动的调用__construct()构造方法,构造方法的括号小括号里面是可以加入参数的。相应的在实例化New这个类的时候,记得在后面加上相应的参数。如果没有加,则会调用类里面进行初始化。
类的析构方法__destruct()跟类的构造方法的声明方式和构造方法类似,都是以两个下划线开头的。PHP有种机制叫做垃圾回收,可以自动清除不再使用的的对象,释放内存。而析构方法就是在类的对象在被清理之前调用的方法。