购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.2 构造函数与析构函数

创建类的实例(对象)时,需要调用构造函数进行对象的初始化工作,如果没有定义构造函数,则使用默认的无参数构造函数。

实际开发中,可以根据需要定义自己的构造函数。下面的代码在tAuto类中添加了一个构造函数(/demo/tAuto.php)。

在PHP的类中,使用_ _construct()函数定义类的构造函数。本例的构造函数定义了一个参数,用于指定车门数量,并指定默认为4。下面的代码在/index.php文件中测试这个构造函数的使用。

    <?php
    require_once $_SERVER["DOCUMENT_ROOT"]."/demo/tAuto.php";

    $auto1 = new tAuto();
    echo $auto1->getDoors(),"<br>";
    $auto2 = new tAuto(2);
    echo $auto2->getDoors();
    ?>

代码执行后会显示4和2。本例中,$auto1对象创建时并没有指定参数,doors属性使用默认值4;$auto2对象创建时指定参数为2,doors属性的值设置为2。

PHP的类中,只能定义一个构造函数,一方面,如果需要创建多个版本的对象,可以组织好_ _construct()方法的参数,并设置合理的默认值;另一方面,可以使用静态方法创建不同版本的对象,在软件开发中,这类静态方法称为“工厂方法”。6.3节会介绍静态成员的相关应用。

与构造函数相对应的是析构函数,可以完成对象释放时的清理工作。在PHP的类中,使用_ _destruct()方法定义析构函数,对象释放时会自动调用,如下面的代码(/demo/tAuto.php)。

下面的代码在/index.php文件中进行测试。

    <?php
    require_once $_SERVER["DOCUMENT_ROOT"]."/demo/tAuto.php";

    $auto = new tAuto();
    ?>

代码执行结果见图6-3。可以看到,代码中并没有显式调用析构函数,但它的确执行了。

图 6-3 Zbq7VpdtFnav9p6wp31xpPXp2vBL/F68ykQWN8t2U2MilY3HKkcrEMjVbD3O6pSy

点击中间区域
呼出菜单
上一章
目录
下一章
×