php析构函数的作用

简言之,析构函数的作用就是释放内存。

析构函数__destruct ( void ) : void

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

析构函数示例<?php

class MyDestructableClass {

function __construct() {

print "In constructor\n";

$this->name = "MyDestructableClass";

}

function __destruct() {

print "Destroying " . $this->name . "\n";

}

}

$obj = new MyDestructableClass();

?>

和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。此外也和构造函数一样,子类如果自己没有定义析构函数则会继承父类的。

析构函数即使在使用 exit() 终止脚本运行时也会被调用。在析构函数中调用 exit() 将会中止其余关闭操作的运行。

注意:

● 析构函数在脚本关闭时调用,此时所有的 HTTP 头信息已经发出。脚本关闭时的工作目录有可能和在 SAPI(如 apache)中时不同。

● 试图在析构函数(在脚本终止时被调用)中抛出一个异常会导致致命错误。

相关推荐:【PHP教程】

php析构函数有什么用,php析构函数的作用相关推荐

  1. php中的构造函数和析构函数,php 中构造函数和析构函数

    构造函数: 在对象实例化时被调用,一个类中只能有一个构造函数,在类中起初始化的作用. 析构函数: 在对象结束时被自动调用. 话不多说,用一段代码来说明两者的区别: //定义一个类 class Pers ...

  2. C++为什么父类析构函数要定义为虚析构函数

    C++为什么父类析构函数要定义为虚析构函数 这个问题主要是由于子类继承父类时,构造函数和析构函数的调用问题产生的结果: 第一点我们需要知道,子类在继承时构造函数是不能被继承的.但是,为了初始化从父类继 ...

  3. php中类的构造函数和析构函数,php面向对象-构造函数和析构函数详解

    php面向对象中构造函数(__construnct)和析构函数详解(__destruct) //在实际运用中构造函数的作用可以用来给属相初始化值,或初始化操作,话不啰嗦,例子更能形象说明: class ...

  4. 对象特性-构造函数和析构函数

    基础概念: 构造函数:是一种特殊的方法.主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或 ...

  5. C++继承中构造函数、析构函数调用顺序及虚析构函数

    首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数, ...

  6. C++中基类与派生类的构造函数和析构函数

    1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...

  7. c++ map 析构函数_C++学习刷题6--C++类的使用:构造函数、析构函数和类的使用

    一.前言 本部分为C++语言刷题系列中的第4节,主要讲解这几个知识点:构造函数.析构函数和类的使用.欢迎大家提出意见.指出错误或提供更好的题目! 二.知识点讲解 由以前知识可知,类的实现中包含成员变量 ...

  8. C++知识点38——拷贝赋值运算符、析构函数、=default、阻止拷贝和赋值

    一.拷贝赋值运算符 介绍拷贝赋值运算符,先简单说下重载运算符的知识.重载运算符本质依然是函数的重载,重载运算符的函数名由operator关键字和运算符的符号组成,和其他函数类似,可以有形参和返回值. ...

  9. C++构造函数与析构函数

    几乎所有的面向对象的编程语言都保护构造函数与析构函数,好学者就要举手了,啥情况啊,Java里面不就没有析构函数嘛.好吧,你问倒我了,不过可以认为Java的垃圾自动回收机制实现了对象析构的功能.管他呢, ...

最新文章

  1. 服务器修改mime类型,服务器上设置mime类型
  2. oracle循环的方式,Oracle 的几种循环方式介绍
  3. 2021-11-22--中标麒麟-Linux系统扩容根目录磁盘空间
  4. Asp.net在IIS6.0权限设置的问题,大牛进
  5. 矩阵乘法递推的优化艺术
  6. gulp加速hexo的yelee主题
  7. [CQOI2012] 局部极小值(状压DP + 容斥 + 搜索)
  8. InstallShield SdShowMsg未关闭导致安装程序无法停止
  9. Debian下PostgreSQL修改密码与配置详解
  10. 2019西电网安实验班选拔考试
  11. 细节打满,IO 操作必须手动关闭?关闭流方法是否有顺序?
  12. vue 文件导入服务器,Vue 如何import服务器上的js配置文件
  13. STM32工作笔记0034---蜂鸣器实验-M3
  14. 网页导出pdf不完整_今天才知道!Word、Excel、PDF格式还能随意转换,20秒即可实现...
  15. Flask 发布 1.0 稳定版
  16. 【戴师兄数分】excel基础操作——函数专题(个人笔记)
  17. 专家访谈:Flex技术对web开发的影响
  18. ipynb转python(.py)
  19. 计算机里没有摄像这个程序,win7系统没有摄像头不能视频的几种原因和解决方法...
  20. AElf区块链分红合约(Profit Contract)接口和实现思路

热门文章

  1. android art 远程控制,也来看看Android的ART运行时
  2. html如何携带参数自动跳转页面
  3. html 页面跳转监听,如何监听跳转页面执行结果?
  4. IPMSM永磁电机弱磁控制 附有说明文档 公式法MTPA
  5. WINCC如何利用报警记录控件实现操作员操作记录功能(上)
  6. java:JDBC连接数据库实现用户管理系统
  7. Simulink电机控制代码生成-----关于PI控制器参数整定的一点总结
  8. C++设计模式--单例模式详解(懒汉模式、饿汉模式、双重锁)
  9. js和html5实现扫描条形码
  10. layDate显示默认时间