构造方法
一个类中只能创建一个构造方法。构造方法不能主动被调用,只有在使用关键字 new 创建对象时才会调用构造方法,所以构造方法通常用来执行一些初始化任务。比如:对属性赋初值等。
在PHP4及以前的版本中,构造方法的名称必须与类名相同,在PHP5中构造方法的名称规定为__construct()。如果一个类中没有名称为__construct()的方法,PHP5将搜索与类名相同的构造方法。创建构造方法的语法格式如下:
function__construct([参数1,参数2,……]){
//构造方法的具体实现
}
|
析构方法
与构造方法相对的就是析构方法,析构方法会在某个对象的所有引用都被删除或者对象被显式销毁时执行,也就是说,对象在内存中被销毁前调用析构方法。析构方法是PHP5新添加的内容,在PHP4中没有析构方法。
与构造方法的名称类似,一个类的析构方法名称规定为__destruct()。析构方法不能带任何参数。创建析构方法的语法格式如下:
function__destruct(){
//构方法的具体实现
}
|
下面定义一个People类,并为其增加一个析构方法,代码如下:
class
People{
//创建People类
function__construct(
$name
,
$sex
,
$age
){
//定义构造方法
$this
->name=
$name
;
$this
->sex=
$sex
;
$this
->age=
$age
;
}
function
say(){
//定义成员方法
echo
"姓名:"
.
$this
->name.
" "
;
echo
"性别:"
.
$this
->sex.
" "
;
echo
"年龄:"
.
$this
->age;
echo
"
";
}
function__destruct(){
//定义析构方法
echo
"销毁对象:"
.
$this
->name."
";
}
}
$p1
=
new
People(
"张三"
,
"男"
,
"20"
);
//创建对象p1
$p1
->say();
$p2
=
new
People(
"李四"
,
"女"
,
"25"
);
//创建对象p2
$p2
->say();
$p3
=
new
People(
"王五"
,
"男"
,
"30"
);
//创建对象p3
$p3
->say();
|
该程序执行时得到的结果是:
姓名:张三 姓名:男 年龄:20
姓名:李四 姓名:女 年龄:25
姓名:王五 姓名:男 年龄:30
销毁对象:张三
销毁对象:李四
销毁对象:王五