PHP中的构造函数和析构函数

摘要

在PHP中,我们可以使用类来创建一个对象。在这个过程中,我们经常会用到构造函数。PHP5开始,允许开发者在一个类中通过关键字__construct来覆盖默认的构造函数,方便开发者在使用对象之前做一些初始化工作。

PHP中,我们可以使用类来创建一个对象。在这个过程中,我们经常会用到构造函数PHP5开始,允许开发者在一个类中通过关键字__construct来覆盖默认的构造函数,方便开发者在使用对象之前做一些初始化工作。

构造函数有如下特点:

1、构造函数没有返回值。

2、构造函数主要作用是完成对新对象的初始化,并不是创建对象本身。

3、一个类最多只能有一个显式的构造函数(__construct)。

4、如果没有显式的构造函数,则使用该类默认的构造函数。反之,则会被显式的构造函数覆盖。

5、构造函数的默认访问修饰符是public。

PHP5引入了析构函数的概念析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。析构函数的主要作用是在对象销毁前释放对象的相关资源(比如数据库链接,或是打开的文件引用等等)。

析构函数有如下特点:

1、析构函数没有返回值。

2、析构函数主要作用是释放资源的操作,并不是销毁对象本身。

3、一个类最多只能有一个显式的析构函数(__destruct)。

4、如果没有显式的析构函数,则使用该类默认的析构函数。反之,则会被显式的析构函数覆盖。

5、析构函数的默认访问修饰符是public。

上面提到了对象销毁,这里我们有必要引出一下PHP中的垃圾回收机制。

1、在PHP中,当一个对象没有任何引用指向它的时候就会成为一个垃圾对象,此时,PHP将启用垃圾回收器将对象销毁。

2、在程序退出前,PHP也将启用垃圾回收器,销毁对象。

3、PHP垃圾回收机制是PHP5之后才有的东西。

4、PHP5.3之前使用的垃圾回收机制是单纯的“引用计数”,也就是每个内存对象都分配一个计数器,当内存对象被变量引用时,计数器就加1;当变量引用撤销后,计数器就减1;当计数器为0时,表明内存对象没有被使用,此时内存对象则进行销毁,垃圾回收完成。从PHP5.3开始,使用了新的垃圾回收机制,在引用计数的基础上,实现了一种复杂的算法来检测内存对象中引用环的存在,以避免内存泄漏。

特别说明:当一个对象没有任何引用指向它的时候,并不是说一定要赋值为null,赋值为其它值也是可以的,如字符串等。

如果你有什么需要补充的,欢迎下方留言。

shaw

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: