所谓构造函数,就是在使用这个类来构造它的对象时所使用的一个函数。
构造方法 __construct(); 注意前面是两个下划线。
构造方法的使用时机:每当new一个对象,就会自动对新new出来的对象发挥作用。
class people{
private $name;
function __construct($n){
$this->name=$n;
}
function getmsg(){
return $this->name;
}
}
$guan=new people("罐罐");
echo "可爱的小熊猫是:";
echo "
";
";
echo $guan->getmsg();
这个构造函数的作用就是对$this->name进行赋值,它被赋值为$n,那么当我们再次调用getmsg函数取出这个属性的时候,发现取出的值就是“罐罐”了。
执行结果:
可爱的小熊猫是:
罐罐
罐罐
一个构造函数的目的通常是对这个类的一些属性进行适当的赋值,它的参数传递是$类变量名=new
类名(参数列表);中的参数列表。比如$guan=new
people("罐罐");中的这个“罐罐”就是__construct()中的参数。
析构函数
前面介绍了构造函数__construct,它会在类被实例化的时候调用。
下面介绍析构函数__destruct,它在类对象被销毁的时候调用。
对象如何销毁:
1,显式的销毁,unset,赋值为null,都可以。
2,php是脚本语言,在代码执行到最后一行时,所有申请的内存都要释放掉。自然,对象的那段内存也要释放,对象也就被销毁了。
class people{
function
__construct(){
echo
"此时类被初始化","
";
";
}
function
say(){
echo
"罐罐","
";
";
}
function
__destruct(){
echo
"此时类被析构","
";
";
}
}
$guan=new
people();
$guan->say();
执行结果显示:
此时类被初始化
罐罐
此时类被析构
罐罐
此时类被析构
这里明确调用的函数只有$guan->say();
而__construct和__destruct函数也得到了运行。
__construct在类被实例化的时候调用,而__destruct在类的实例被销毁的时候时候自动调用。
在范例中,在页面运行完毕,它会自动销毁创建的对象,此时就会调用这个people类的析构函数。