首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何销毁对象?

如何销毁对象?
EN

Stack Overflow用户
提问于 2012-01-10 12:09:03
回答 2查看 191.4K关注 0票数 129

据我所知(很少),有两种方法,给定:

代码语言:javascript
复制
$var = new object()

然后:

代码语言:javascript
复制
// Method 1: Set to null
$var = null;
// Method 2: Unset 
unset($var); 

还有其他更好的方法吗?我是在吹毛求疵吗?

EN

回答 2

Stack Overflow用户

发布于 2018-10-27 00:44:26

可能是在创建新的mysqli对象的情况下。

$MyConnection = new mysqli($hn, $un, $pw, $db);

但即使在您关闭对象之后

$MyConnection->close();

如果您要使用print_r()检查$MyConnection的内容,您将得到如下错误:

代码语言:javascript
复制
Error:
mysqli Object

Warning: print_r(): Property access is not allowed yet in /path/to/program on line ..
( [affected_rows] => [client_info] => [client_version] =>.................)

在这种情况下,您不能使用unlink(),因为unlink()需要路径名称字符串,但在本例中,$MyConnection是一个对象。

因此,您还可以选择将其值设置为null:

$MyConnection = null;

现在事情进展顺利,正如您所预期的那样。在变量$MyConnection中没有任何内容,而且已经清理了mysqli对象。

建议的做法是在将变量的值设置为null之前关闭对象。

票数 0
EN

Stack Overflow用户

发布于 2012-01-10 12:13:43

我会使用unset,因为它可能会给垃圾收集器一个更好的提示,以便内存可以更快地再次可用。注意,对象指向的任何东西要么有其他引用,要么先取消设置,否则您将不得不等待垃圾收集器,因为这样就没有句柄了。

票数 -8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8798443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档