【问题标题】:How to destroy a class object in PHP?如何在 PHP 中销毁类对象?
【发布时间】:2011-04-08 11:28:23
【问题描述】:

我写了一个小类来存储全局变量/函数。我的问题是 - 脚本完成后是否有必要销毁类对象? 还是 PHP 会销毁该对象本身?

这是我的代码:

$web=new c_web("myWeb");
$web->loadTemplate("/!framework/admin/template.htm");
$web->doStuff();
// script has finished - destroying required here?

如果我需要销毁它,我该怎么做?

【问题讨论】:

    标签: php class object destroy


    【解决方案1】:

    如果脚本完成,则释放内存。你已经准备好了:)

    【讨论】:

    • 太好了 - 谢谢!如果一个脚本会因错误而终止呢?所有变量(数据库..)也会被销毁吗?
    • 好吧,数据库连接可能需要“关闭”,但在大多数情况下,您只需要在执行期间需要更多内存时才需要担心这一点。因此,如果您在一个对象中加载 X 数量的数据,然后您想再次执行此操作。但基本上:别担心,代码快乐:)
    【解决方案2】:

    不,你不需要自己销毁任何变量(对象就是一个变量):一旦你的 PHP 脚本结束,它的变量就会被释放,相应的内存也会被释放发布。

    实际上,当到达其variable's scope 的末尾时,变量会自动销毁——当您到达脚本末尾时,它是该脚本执行引入的范围的末尾。


    (对另一个答案的评论)
    当然,当你的脚本因为错误而结束时,同样的事情也会发生:变量被释放,内存被释放。

    【讨论】:

    • 开放的数据库连接怎么样?我需要关闭它们吗?
    • 除非您使用持久连接,否则连接会在 PHP 脚本结束时自动终止。
    【解决方案3】:

    正如@Nanne 所说,如果脚本完成,内存将被释放,但在某些情况下,您可能需要unset($web);

    【讨论】:

      猜你喜欢
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2015-06-14
      • 2012-01-21
      • 2012-07-09
      • 2012-05-02
      相关资源
      最近更新 更多