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

2022-05-19 00:00:00 oop destructor magic-methods php

这些是否正确:

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

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

  3. __destruct类似于在删除对象之前运行的事件,因此我们可以拥有它,也可以不拥有它。任何代码都可以在其中运行。

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


解决方案

  1. 变量/对象/资源在它们所在的脚本执行完成时自动删除/释放。没有必要(或建议)对所有内容都调用unset()

  2. 如果您希望在脚本结束之前删除/释放某些内容,您可以显式unset(),它将立即发生,而不是脚本结束。这可以释放内存,但通常仅用于消除再次引用该对象的可能性。

  3. 正确。

unset()与__destruct有关吗?

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

相关文章