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

问题描述 投票:-3回答:1

这些是正确的:

  1. 任何PHP对象在运行后总是被删除(就像它的代码一样)。
  2. unset($objectName)只是刺激了无论如何会发生什么。删除速度会快一些(来自RAM内存),但最终它完全相同。
  3. __destruct就像是在删除对象之前运行的事件,所以我们可以拥有它。任何代码都可以在其中运行。

unset()__destruct有什么关系吗?就像它会去那(作为唯一的一步),然后删除?

php oop destructor magic-methods
1个回答
3
投票
  1. 变量/对象/资源在它们完成执行时自动删除/取消分配。没有必要(或推荐)在所有事情上调用unset()
  2. 如果你想在脚本结束之前删除/取消分配某些内容,你可以明确地使用unset(),它会立即发生而不是脚本结束。这可以释放内存,但通常仅用于消除再次引用事物的可能性。
  3. 正确。

unset()与__destruct有什么关系。

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

© www.soinside.com 2019 - 2024. All rights reserved.