您的位置:首页 > 编程语言 > PHP开发

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

2017-12-16 18:57 489 查看
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()

注意: 

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

试图在析构函数中抛出一个异常会导致致命错误。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 函数