删除一个 PHP 对象;还 unset() 和 __destruct

Deletion of a PHP object; also unset() and __destruct

这些是否正确:

  1. 任何 PHP 对象总是在 运行 之后被删除(就像它的代码一样)。

  2. unset($objectName) 只是刺激无论如何都会发生的事情。删除会快一点(从 RAM 内存),但最终它是完全一样的东西。

  3. __destruct 就像一个在删除对象之前得到 运行 的事件,所以我们可以有或没有。其中的任何代码都可以是 运行。

unset()__destruct有关系吗?就像它会转到那个(作为唯一的步骤)然后删除?

  1. Variables/objects/resources 当他们所在的脚本完成执行时自动 deleted/deallocated。没有必要(也不建议)对所有事情都调用 unset()

  2. 如果你想让某些东西在脚本结束之前deleted/deallocated,你可以明确地unset()它,它会立即发生而不是结束脚本。这可以释放内存,但通常仅用于消除再次引用该事物的可能性。

  3. 正确。

Does unset() has anything to do with __destruct.

是的。就在对象被销毁之前(通过显式 unset() 或到达脚本末尾),__destruct() 方法被调用(如果存在)。