PHP析构函数与构造函数是相反的,它们被调用来一个对象从内存中销毁,帮助我们释放对象属性所占用的内存并销毁对象相关的资源。
php构造函数是对象创建完成后,第一个自动调用的方法,析构函数是当对象被释放之前最后一个自动调用的方法。本文章向大家介绍php构造函数与析构函数。
php构造函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
1.是对象创建完成后,“第一个”“自动调用”的方法
2.构造方法的定义,方法名是一个固定的,
在php4中:和类名相同的方法就是构造方法
在php5中:构造方法选择使用 魔术方法construct() 所有类中声明构造方法都使用这个名称
优点:在改变类名时,构造方法不用改变
魔术方法: 在类中写出了某个魔术方法,这个方法对应的功能就会添加上
方法名称都是固定的(都是系统提供好的),没有自己定义的
每一个魔术方法,都是在不同时刻为了完成某一功能自动调用的方法
不同的魔术方法有不同的调用时机
都是以 开头的方法
construct(); destruct(); set();......
作用:为成员属性初始化;
php析构函数
析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。
1.当对象被释放之前最后一个“自动”调用的方法
使用垃圾回收器(java php),而c++手动 的释放
作用:关闭一些资源,作一些清理的工作
destruct();
php构造函数与析构函数实例class Person{
var $name;
var $age;
var $sex;
//php4中的构造方法
/*function Person()
{
//每声明一个对象都会调用
echo "1111111111111111";
}*/
//php5中的构造方法
function construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
function say(){
//$this->name;//对象中成员的访问使用$this
echo "我的名字:{$this->name},我的年龄:{$this->age}
"
}
function run(){
}
function eat(){
}
//析构方法
function destruct(){
}
}
$p1=new Person("zhangsan",25,"男");
$p2=new Person;
$p3=new Person;