首页 > 编程笔记 > PHP笔记 阅读:2

PHP构造函数和析构函数的用法(附带实例)

在 PHP 中,构造函数是一种特殊的方法,用于在创建对象时进行初始化操作,例如为对象的属性进行赋值、设定默认值等。构造函数在创建对象时自动调用,无须手动调用。

每个类都有一个构造函数,如果没有显式定义构造函数,PHP 会自动生成一个没有参数且没有任何操作的默认构造函数;如果显式定义构造函数,默认构造函数将不存在。

定义构造函数的语法格式如下:
访问控制修饰符 function __construct([参数1, 参数2, …])
{
    方法体
}
在上述语法格式中,构造函数的默认访问控制修饰符是 public,构造函数中的参数是完成对象初始化所需的数据。在创建对象时,可以根据不同的需求传入不同的参数,构造函数的方法体用于完成初始化操作。

为了使读者更好地理解构造函数,下面演示构造函数的使用方法,具体代码如下:
class User
{
    public $name;
    public function __construct($name = 'user')
    {
        $this->name = $name;
    }
}
$obj1 = new User();
$obj2 = new User('Tom');
echo $obj1->name;          // 输出结果:user
echo $obj2->name;          // 输出结果:Tom
在上述代码中:
从上述示例代码的输出结果可以看出,不传递参数时,属性 $name 的值为默认值 user;传递参数时,属性 $name 的值为 Tom。

PHP中的析构函数

析构函数在对象被销毁之前自动调用,执行一些指定功能或操作。例如,关闭文件、释放结果集等。在使用 unset() 释放对象或者 PHP 脚本运行结束自动释放对象时,析构函数会自动调用。

定义析构函数的语法格式如下:
访问控制修饰符 function __destruct([参数1, 参数2, …])
{
    方法体
}
上述语法格式中,方法体用于完成对象的销毁。

下面演示析构函数的使用,示例代码如下:
class User
{
    public function __destruct()
    {
        echo '执行了析构函数';
    }
}
$obj = new User();
unset($obj);          // 输出结果:执行了析构函数
在上述代码中,第 9 行代码使用 unset() 释放对象,此时就会自动执行析构函数。由于 PHP 脚本运行结束时也会自动释放对象,所以即使省略第 9 行代码,也会输出“执行了析构函数”。

相关文章