在php中构造函数与析构函数都是使用在类中的,下面我来给大家详细介绍关于在php类中使用构造函数与析构函数的方法,有需要了解的朋友可参考参考。
析构函数
php析构函数的作用刚好和构造函数相反,构造函数是在对象实例化时自动执行,而析构函数在对象被销毁时自动执行。
默认情况下,php仅释放对象属性所占用的内存,并不销毁对象相关的资源,而利用析构函数在使用一个对象之后执行代码来清除内存,并将对象从内存中销毁。析构函数__destruct()结构形式如下:
代码如下 |
复制代码 |
function __destruct(){
/* class initialization code */
}
|
析构函数是由系统自动调用,不能带参数。
实例:
代码如下 |
复制代码 |
class des{
function __destruct(){
echo "运行结束,执行析构函数";
}
}
$p=new des(); /* 实例化类 */
$sum=0;
for($i=0;$i
$sum=$sum+$i;
echo $sum ." ";
}
?>
|
析构函数的调用
php如何调用析构函数?当php脚本不再与对象相关时将调用析构函数。如果要明确地销毁一个对象调用析构函数,可以给指向对象的变量不分配任何值,通常将变量赋值为NULL或者用unset()函数。
实例:
代码如下 |
复制代码 |
class des{
function __destruct(){
echo "对象被销毁,执行析构函数 ";
}
}
$p=new des(); /* 实例化类 */
echo "程序开始 ";
unset($p); /* 销毁变量$p */
echo "程序结束";
?>
|
构造函数
我们在使用类的过程中,有时需要立即为实例化对象的多个字段父子,如果通过手工,会带来很多不可预测的问题,而如果在对象创建过程中自动执行,则会带来很多方便。
php构造函数作用就是当类被实例化时,会自动执行的函数,又称为构造函数。
构造函数的声明和其它函数一样,知识构造函数的名称是“__construct”固定的名称,其结构形式如下:
代码如下 |
复制代码 |
function __construct([argument1,argument2,argument3]){
/* class initialization code */
}
|
实例:
代码如下 |
复制代码 |
class user{
public $name;
private $password;
private $login;
public function __construct($name,$password){
$this->name=$name;
$this->password=$password;
$this->login=time();
}
function getlogin(){
return(date('M d,Y',$this->login));
}
}
$user=new user('Marry','888888');
echo "用户名: ". $user->name. " ";
print("访问时间". $user->getlogin());
?>
|
调用父类构造函数
构造函数可以被子类调用,php调用父类构造函数时必须使用parent关键字,否则不会自动调用。
实例:
代码如下 |
复制代码 |
class task1{
public function __construct(){
echo "today is Monday". " ";
}
}
class task2 extends task1{
function __construct(){
parent::__construct(); /* 调用父类构造函数 */
echo "I must work!";
}
}
new task2;
?>
|
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn