__destruct()析构函数到底有何作用!该怎么用?
2018-04-04 18:21
417 查看
PHP和JAVA C++ 这些对象常驻内存语言不同。php大多情况下一个http请求发送完成会自动关闭数据库连接销毁对象变量等...
我认为PHP的析构函数基本用不到,听我一个老师讲过会在一些加锁的时候 会用到(我暂时没写过,写过锁也没用到析构函数)。
如果一定要研究PHP的析构函数 可以尝试以下的例子 帮助理解:
对应的输出结果
当整个请求结束后,对象会调用析构函数 销毁所有有关该对象的东西!
即使你不写析构函数。PHP机制也会自行销毁。因为这本身就是PHP的特性,脚本语言。请求完成,马上释放掉!(之所以写出来,是让大家看的直观。)
注意看下面(前面代码不变)
依然请求四次,但第二次请求覆盖第一次请求 都赋值给变量b,我们看一下结果
第一次进来创建了a对象 (第0个)
第二次进来创建了b对象 (第1个)
从上图看 b对象被创建出来后 a 对象马上就被销毁 系统会自动调用析构函数来销毁 前一个赋值给b的对象
综上所述:在PHP中析构函数在绝大多数情况下,会自动调用销毁对象。本文只介绍其原理~
我认为PHP的析构函数基本用不到,听我一个老师讲过会在一些加锁的时候 会用到(我暂时没写过,写过锁也没用到析构函数)。
如果一定要研究PHP的析构函数 可以尝试以下的例子 帮助理解:
对应的输出结果
当整个请求结束后,对象会调用析构函数 销毁所有有关该对象的东西!
即使你不写析构函数。PHP机制也会自行销毁。因为这本身就是PHP的特性,脚本语言。请求完成,马上释放掉!(之所以写出来,是让大家看的直观。)
注意看下面(前面代码不变)
依然请求四次,但第二次请求覆盖第一次请求 都赋值给变量b,我们看一下结果
第一次进来创建了a对象 (第0个)
第二次进来创建了b对象 (第1个)
从上图看 b对象被创建出来后 a 对象马上就被销毁 系统会自动调用析构函数来销毁 前一个赋值给b的对象
综上所述:在PHP中析构函数在绝大多数情况下,会自动调用销毁对象。本文只介绍其原理~
相关文章推荐
- sysgen环境变量到底怎么产生作用的?
- sysgen环境变量到底怎么产生作用的?
- Eclipse中project的clean功能到底有什么作用?
- C++中虚析构函数的作用
- C++中虚析构函数的作用
- 物理内存低于896M各个区到底是怎么映射的
- 纯虚析构函数的作用
- ThreadLocal,静态变量,实例变量,局部变量的线程安全,回复:ByteBuffer 到底怎么用?网络编程中一点总结!
- 从大数据的风水图,来看到底大数据是怎么回事
- 产品经理想做好数据可视化表达,到底该怎么选图表?
- C++中虚析构函数的作用
- 轮胎扎了“钉子”该怎么办?到底要不要拔掉?
- bind()的作用到底是什么
- 这个社会到底怎么了?
- Blog到底怎么了?
- IOS开发的时候到底用户体验该怎么来做呢?
- C++中虚析构函数的作用
- 析构函数 private 、virtual的作用
- PHP5的72变:__construct与__destruct关键字-构造函数和析构函数--第4变
- 汇编语言中可以定义变量吗?怎么定义?有局部变量和全局变量之分吗?作用域是什么?