PHP的析构函数的细节
来源:互联网 发布:360杀毒会拦截端口吗 编辑:程序博客网 时间:2024/05/05 17:58
PHP手册里这样定义:
void __destruct (void )
PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
但是程序异常时,是不执行__destruct()的,如果是数据库的连接的类,就可能造成数据库的连接不被释放,最终导致数据库的连接占满。
可采用register_shutdown_function函数解决这个问题,测试例子:
<?phperror_reporting(0);
class A{ function __construct() { register_shutdown_function(array($this, '__destruct')); echo "in."; }
function test() { $a = new FooClass(); }
function __destruct() { echo "out."; } };
$test = new A;A.test();?>
但是也会产生另一个问题,就是__destruct会被执行两次。
- PHP的析构函数的细节
- PHP匿名函数的细节
- PHP的编程细节
- php 的小细节
- 输入函数的细节
- 构造函数的细节
- 构造函数的细节
- delete和析构函数间的关系及细节
- 关于 PHP Boolean 的细节
- php优化的小小细节
- PHP的一些小细节
- php ++和逻辑运算的细节
- php://input的细节问题
- php 需注意的细节
- 关于函数调用的细节
- 函数GetFullPathName的调用细节
- 使用函数的小细节
- main函数的具体细节
- 11gR2 单实例dbca静默建库
- 读书札记
- php中生成随机密码的自定义函数代码
- 快速排序【模板】
- TQ2440在linux下的LED驱动程序
- PHP的析构函数的细节
- const char*, char const*, char*const的区别
- Cocos2d-x——触摸事件(单点触摸)
- Oracle 11g PL/SQL基础入门系列培训-视频分享
- java内存查看与分析
- 参数
- COM本质论---第二章 接口
- 【原】Activity的LaunchMode和taskAffinity
- PHP几个函数