当前位置:  开发笔记 > 编程语言 > 正文

PHP:析构函数vs register_shutdown_function

如何解决《PHP:析构函数vsregister_shutdown_function》经验,为你挑选了1个好方法。

我有一个PHP类,可以动态创建PNG图像并将其发送到浏览器.PHP手册说我需要确保在结束时调用imagedestroy函数来释放内存.现在,如果我没有使用类,我会得到一些像这样的代码:

function shutdown_func() 
{
    global $img;
    if ($img)
        imagedestroy($img);
}
register_shutdown_function("shutdown_func");

但是,我认为我班级的适当位置是在类'析构函数中调用imagedestroy.

我没有发现析构函数是否以与关闭函数相同的方式调用?例如,如果用户在浏览器中按下STOP按钮,则执行停止.

注意:无论您在答案中写什么,请指向支持它的一些文章或手册页(URL).



1> Milan Babušk..:

我刚用Apache测试过,PHP用作Apache模块.我创建了一个无限循环,如下所示:


这是我发现的:

在Firefox中按STOP按钮不会停止此脚本

如果我关闭Apache,析构函数不会被调用

它在达到PHP max_execution_time时停止,并且不会调用destuctor

但是,这样做:


shutdown_func被调用.所以这意味着类destuctor不如关闭函数那么好.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有