您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
燕十八面向对象-构造函数详解
发布时间:2015-08-21 20:41:35编辑:雪饮阅读()
构造函数在类实例化一个对象时自动运行如下;
header("Content-type:text/html; charset=utf-8");
class xybk{
public function __construct(){
echo "雪饮个人博客";
}
}
$a=new xybk();
将会直接在浏览器输出“雪饮个人博客”
一个类在没有构造函数的时候,每次实例化的对象的属性值将会都相同,这样不符合我们的需求。而构造函数在实例化的时候同时执行,那么我们就可以通过传递不同的参数来实现实例化出的对象的属性值等互不相同。
如下所示:
class xybk{
public function __construct($n,$m){
echo $n."<br/>".$m;
}
}
$a=new xybk("雪饮个人博客1","雪饮个人博客2");
有了构造函数时只需要在类实例化对象的时候传参不同的值就可以实例化属性值不同的对象,由于构造函数是在实例化的同时运行的,所以传参是传给了构造函数。
需要注意的是传参的形式要和构造方法中的参数一致,构造方法是不能被重载的。
了解了构造方法,那么析构方法不难理解。相对于构造方法来说,析构方法刚好相反,它是在对象销毁的时候才执行的,其它都和构造方法没有什么变化。如下所示:
class xybk{
public function __construct(){
echo "雪饮个人博客上线了<br/>";
}
public function __destruct(){
echo "天下没有不散的宴席,雪饮个人博客要步入更高的境界了。。。";
}
}
$a=new xybk();
类在处理对象的时候是先全部创建然后全部销毁,并不是每个对象都创建一次销毁一次,而是一起创建一起销毁。如下实例的输出结果可以证明:
class xybk{
public function __construct(){
echo "雪饮个人博客上线了<br/>";
}
public function __destruct(){
echo "天下没有不散的宴席,雪饮个人博客要步入更高的境界了。。。";
}
}
$a=new xybk();
$b=new xybk();
下面是输出结果:
从输出结果并结合语句顺序可以很容易得出这个结论。
关键字词:燕十八,构造函数,个人博客