关于“php什么是析构函数”的问题,小编就整理了【5】个相关介绍“php什么是析构函数”的解答:
与构造函数相对应的函数称为?与构造函数相对应的是析构函数。析构函数的职能是:销毁一个类对象之前被调用。这一特性将帮助系统回收资源,处理一些即将关闭而必须采取的行动。正如构造函数一样,这一切都是自动执行的。exit()函数可以触发析构函数。而析构函数如果调用了exit()函数,系统将不保证完整的执行关闭任务。
析构函数在何时调用?调用时间:
1、对象生命周期结束,被销毁时;
2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;
3、对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。如以下定义是合法的:当程序中没有析构函数时,系统会自动生成以下析构函数:::~(){},即不执行任何操作。下面通过一个例子来说明一下析构函数的作用:最后输出:析构函数被调用。cin.get() 表示从键盘读入一个字符,为了让我们能够看得清楚结果。当然,析构函数也可以显式的调用,如 (*t).~T(); 也是合法的。
析构函数什么时候执行?析构函数在下边3种情况时被调用:
对象生命周期结束,被销毁时;
主动调用delete ;
对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。
为什么很多的析构函数是空的?垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。
不应使用空析构函数。如果类包含析构函数,Finalize 队列中则会创建一个项。调用析构函数时,将调用垃圾回收器来处理该队列。如果析构函数为空,则只会导致不必要的性能丢失。
所以你看到的空函数代码是不安全的.
什么函数主要在销毁对象的同时完成收尾任务?析构函数具有销毁对象的同时,完成该阶段的收尾任务。
到此,以上就是小编对于“php什么是析构函数”的问题就介绍到这了,希望介绍关于“php什么是析构函数”的【5】点解答对大家有用。