温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

类中的构造函数与析构函数是什么

发布时间:2021-10-25 11:05:23 来源:亿速云 阅读:372 作者:iii 栏目:编程语言

本篇内容介绍了“类中的构造函数与析构函数是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

类中的构造函数与析构函数是什么

PHP类中构造函数也叫作构造器,当时用new关键字实例化一个对象时,它可以在对象被创建时自动调用,是类中的一个特殊函数。与之相对应的函数就是析构函数,析构函数的作用与构造函数正好相反,析构函数它可以在对象销毁前执行操作。那接下来我们一起来看一看这两个函数吧。

__construct():构造函数/方法

在PHP的类中,我们使用__construct()作为类的构造函数,构造函数是当对象被创建时,类中被自动调用的第一个函数,并且一个类中只能存在一个构造函数,并且需要注意的是,如果构造函数中有参数的话,那么实例化也需要传入对应的参数。

构造函数创建的语法格式如下:

public function __construct(参数列表){
    ... ...
}

需要注意的是,其中的参数列表是可选的,不需要的时候可以省略。construct前面是两个下划线__

实例如下:

<?php
    class study{
        public $study1, $study2, $study3,$study4;
        public function __construct($str1, $str2, $str3,$str4){
            $this -> study1 = $str1;
            $this -> study2 = $str2;
            $this -> study3 = $str3;
            $this -> study4 = $str4;
            $this -> demo();
        }
        public function demo(){
            echo $this -> study1.'<br>';
            echo $this -> study2.'<br>';
            echo $this -> study3.'<br>';
            echo $this -> study4.'<br>';
        }
    }
    $object = new study('好好学习','天天向上','福如东海','寿比南山');
?>

示例中的$this表示当前调用的对象。输出结果:

类中的构造函数与析构函数是什么

由上述结果,我们通过,我们通过__construct()构造函数,就调用了类中创建的对象。

__destruct():析构函数/方法

刚才讲到的__construct()构造函数,它会在对象被创建的时候调用,与之相对应的就是析构函数,析构函数的作用与构造函数相反,析构函数只有当对象从内存中删除之前才会被自动调用,在PHP中有垃圾回收机制,当对象不能被访问就会自动启动垃圾回收机制,析构函数就是垃圾回收对象前调用。

__destruct()函数的语法格式如下:

public function __destruct(){
    ... ...
}

需要注意的是,与构造函数类似,destruct前面也是两个下划线__;不同的是析构函数不能带有任何参数。

实例如下:

<?php
    class Website{
        public $study1, $study2;
        public function __construct(){
            echo '构造函数被调用了<br>';
        }
        public function __destruct(){
            echo '析构函数被调用了<br>';
        }
    }
    $object = new Website();
    echo '好好学习<br>';
    echo '天天向上<br>';
?>

输出结果:

类中的构造函数与析构函数是什么

由上述实例可以看出,构造函数与析构函数调用的时间不同,构造函数在对象被创建时自动调用,析构函数在对象被垃圾收集器收集前被调用。

$this:当前对象

在PHP面对对象编程中,对象被创建之后,在对象中的每个成员方法里,都会存在一个特殊的对象引用“$this”,与连接符->联合使用,专门用来完成对象内部成员之间的访问。示例如下:

$this -> 成员属性;
$this -> 成员方法(参数列表);

我们在类中访问一个成员属性时,后面只需要跟着属性名称就行了,不用加$符号,$this只能在对象中使用,没有对象就没有$this。

示例如下:

<?php
    class Website{
        public $name;
        public function __construct($name){
            $this -> name = $name;
            $this -> name();
        }
        public function name(){
            echo $this -> name;
        }
    }
    $object = new Website('好好学习');
?>

输出结果:

类中的构造函数与析构函数是什么

“类中的构造函数与析构函数是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI