最好的方法来销毁PHP对象?

据我所知(这是非常less的),有两种方法,给出:

$var = new object() 

然后:

 // Method 1: Set to null $var = null; // Method 2: Unset unset($var); 

其他更好的方法? 我在这里分开头发吗?

干杯!

你正在寻找unset()

但考虑到你不能明确地销毁一个对象。

它会停留在那里,但是如果你没有设置对象,并且你的脚本将PHP压入内存限制,那么不需要的对象将被垃圾收集。 我会去与unset() (而不是将其设置为空),因为它似乎有更好的性能(没有testing,但logging在PHP官方手册的意见之一 )。

也就是说,请记住,只要页面被提供,PHP总是会破坏对象。 所以这只应该在真正的长循环和/或大量繁重的页面上需要。

一个方便的文章解释了这个几个误解:

不要明确调用析构函数

这涵盖了关于析构函数如何工作的几个误解。 根据PHP5文档显式调用它并不会真正销毁您的variables:

PHP 5引入了一个类似于其他面向对象语言(如C ++)的析构函数的概念。 只要没有其他对特定对象的引用,或者在closures序列中以任何顺序,就会调用析构函数方法。

上面的post说明,只要没有其他东西指向分配的内存,将variables设置为null就可以工作。

我会去unset,因为它可能会给垃圾收集器一个更好的提示,使内存可以更快地再次可用。 要小心,对象指向的任何东西要么有其他的引用,要么先取消设置,否则你将不得不在垃圾回收器上等待,因为没有处理它们。