1. 云栖社区>
  2. PHP教程>
  3. 正文

第69讲 php面向对象中的析构方法

作者:用户 来源:互联网 时间:2017-11-30 16:33:55

php对象方法面向

第69讲 php面向对象中的析构方法 - 摘要: 本文讲的是第69讲 php面向对象中的析构方法, 析构方法 PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。 作用 析构函数的作用主要是用于释放资源,比如数据库资源,图片资源,销毁某个对

析构方法

PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。

作用

  • 析构函数的作用主要是用于释放资源,比如数据库资源,图片资源,销毁某个对象等
<?php    class Person{        public $name;        public $age;        public function __construct($name,$age){            $this->name=$name;            $this->age=$age;            //这里用于初始化操作 ,比如打开数据库之类的等等数据化初始操作        }        public function __destruct(){            echo $this->name."执行销毁<br/>";            //这里是一个页面的结束,用于关闭或者销毁一些已经用不到的资源比如已经打开的数据库链接,可以在这里关闭        }    }    $p1 = new Person("1贾宝玉",16);    $p4 = $p1;    $p1=null;    $p5 = new Person("2",2);    $p2 = new Person("3林黛玉",14);    $p3 = new Person("4测试",10);    //如上代码销毁顺序是 4  3  2  1 销毁 如 1贾宝玉  在初始化完成之后赋值给了$p4 然后将$p1 置为null 这个只是把$p1的指向关系取消了,但是因为赋值给了$p4 所以最终效果是不影响的。     //析构方法的销毁按照先进后出的顺序销毁执行    //析构方法和构造方法一样系统默认的会自动调用?>?>

运行代码可以看到效果:
1. 析构方法会自动调用
2. 析构方法主要用于销毁资源
3. 析构方法调用顺序是,先一次创建对象然后放入栈内,秉承着先进后出的原则,最后进入的最先销毁
4. 析构函数什么时候被调用
- 1、当程序退出时候
- 2、当一个对象所有引用指向都没有了,(可称为垃圾对象)那么该对象的析构方法/函数也会被立即调用(这点跟java不一样java是在某个时候执行回收)
- 3、显示调用即手动调用类的析构函数执行销毁

php 垃圾回收机制

  • 1、在php中,当一个对象没有任何引用指向他的时候,当前对象就成为一个垃圾对象,php将即时启用垃圾回收机制将对象销毁,从而回收该对象占用的内存。
  • 2、程序执行退出时,php也将启用垃圾回收机制,销毁对象

php析构方法小节

  • 1、php5加入的析构方法function __destruct();
  • 2、析构方法没有返回值
  • 3、主要作用就是释放资源,不销毁对象本身
  • 4、在释放对象资源前,系统自动调用改对象的析构方法
  • 5、一个类最多只能有一个析构方法

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 对象 , 方法 面向 ,以便于您获取更多的相关知识。