最好的方法来销毁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,因为它可能会给垃圾收集器一个更好的提示,使内存可以更快地再次可用。 要小心,对象指向的任何东西要么有其他的引用,要么先取消设置,否则你将不得不在垃圾回收器上等待,因为没有处理它们。