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

时间:2019-01-11 20:35:46

标签: php oop destructor magic-methods

这些正确吗?

  1. 任何PHP对象在运行后总是会被删除(如其代码)。

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

  3. __destruct就像一个在删除对象之前运行的事件,因此我们可以拥有它,也可以没有它。任何代码都可以在其中运行。

unset()__destruct有关系吗?就像它会去(作为唯一步骤)然后删除?

1 个答案:

答案 0 :(得分:3)

  1. 变量/对象/资源在脚本执行完毕后会自动删除/重新分配。不必(也不建议)对所有内容调用unset()

  2. 如果希望在脚本结束之前删除/取消分配某些内容,则可以显式unset()进行操作,它将立即发生,而不是在脚本结束时发生。这样可以释放内存,但通常仅用于消除再次引用该事物的可能性。

  3. 正确。

  

unset()与__destruct有关系吗

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