【问题标题】:What does script shutdown means?脚本关闭是什么意思?
【发布时间】:2018-02-19 20:59:37
【问题描述】:

我是 OOP PHP 新手,向 php.net 学习。但让我感到困惑的一件事是

一旦没有其他对特定对象的引用,或在关闭序列期间以任何顺序调用,将立即调用析构函数。

是什么意思?以下参考链接的析构函数部分中的脚本关闭是什么意思?

参考链接http://php.net/manual/en/language.oop5.decon.php

【问题讨论】:

  • 实际引用是:“只要没有其他对特定对象的引用,或者在关闭序列期间以任何顺序调用,就会调用析构函数。”
  • 关闭脚本也在下面几行。
  • PHP 代码仅在执行脚本所需的时间内存在。然后应用程序被销毁/关闭。

标签: php oop destructor


【解决方案1】:

当你的脚本结束时,即当它的所有代码都被执行并且 PHP 已经到达你代码的最后一行时,正在执行你的脚本的 PHP 实例将被关闭。这意味着所有变量的所有内存分配都被释放,所有打开的资源(例如数据库连接)都被关闭,所有剩余的打开文件句柄都被关闭等等。它正在清理您的脚本创建的任何状态。

您可以将一些代码挂接到将在此关闭阶段(或在相关对象被丢弃时)运行的代码中,以执行您可能想做的任何自定义清理。

【讨论】:

  • 当你的脚本结束时,即当它的所有代码都被执行并且 PHP 已经到达你代码的最后一行时,正在执行你的脚本的 PHP 实例正在被关闭.PHP 实例是指 PHP 解释器?
  • 是的。为您运行的每个脚本启动一个 PHP 解释器实例,然后在完成后关闭。
  • PHP 在清理(丢弃)对象时调用它。
  • @NinjaBoy 在清理对象时调用对象的析构函数。如果您在运行时删除对某个对象的所有引用(unset、变量超出范围或任何其他方式),则该对象将有资格进行垃圾回收。 GC 触发的确切时间取决于 PHP,但可以想象在脚本结束之前的某个时间,该对象将被垃圾收集并调用其析构函数。在脚本结束时,everything 将被垃圾回收。
  • 垃圾回收。
猜你喜欢
  • 2010-12-29
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
  • 2013-05-16
  • 2011-04-03
  • 2022-01-23
相关资源
最近更新 更多