PHP 类和对象(构造函数和析构函数)

本文介绍了PHP 5中构造函数和析构函数的基本概念及使用方法。构造函数__construct()用于对象创建时的初始化工作,而析构函数__destruct()则在对象销毁时执行清理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.构造函数 :__construct( )


PHP 5 允行开发者在一个类中定义一个方法作为构造函数。


具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使


用对象之前做一些初始化工作。


如下例1:

  

class fun1{


    function __construct(){

        print "开头就调用构造函数\n";

    }

}
$Tom=new fun1();//结果为"开头就调用构造函数"


注意: 


如果子类中定义了构造函数则不会调用其父类的构造函数。


要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct( )


如例2所示:



例2:使用新标准的构造函数


class fun1{
    function __construct(){
        print "开头就调用构造函数fun1"."<br />";
    }
}

class fun2 extends fun1{
    function __construct(){
        print "开头就调用构造函数fun2\n"."<br />";
        parent::__construct();
    }
}


$aaa=new fun1(); //"开头就调用构造函数fun1"


$bbb=new fun2(); //"开头就调用构造函数fun2 开头就调用构造函数fun1"



2.析构函数


PHP 5 引入了析构函数的概念。


析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。 


例3.析构函数示例


class fun1{
    function __construct(){
        print "开头就调用构造函数fun1"."<br />";
    }
    function __destruct(){
        print "当对象被销毁时调用析构函数"."<br />";
    }

}


$Tom=new fun1(); //"开头就调用构造函数fun1"


echo "当Tom对象被销毁时调用析构函数"."<br />";


unset($Tom); //"当对象被销毁时调用析构函数"




和构造函数一样,父类的析构函数不会被引擎暗中调用。


要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()



注意: 

析构函数在脚本关闭时调用,此时所有的头信息已经发出。 


试图在析构函数中抛出一个异常会导致致命错误。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值