据我所知(很少),有两种方法,给定:
$var = new object()
然后:
// Method 1: Set to null
$var = null;
// Method 2: Unset
unset($var);
还有其他更好的方法吗?我是在吹毛求疵吗?
发布于 2018-10-27 00:44:26
可能是在创建新的mysqli对象的情况下。
$MyConnection = new mysqli($hn, $un, $pw, $db);
但即使在您关闭对象之后
$MyConnection->close();
如果您要使用print_r()
检查$MyConnection
的内容,您将得到如下错误:
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
之前关闭对象。
发布于 2012-01-10 12:13:43
我会使用unset,因为它可能会给垃圾收集器一个更好的提示,以便内存可以更快地再次可用。注意,对象指向的任何东西要么有其他引用,要么先取消设置,否则您将不得不等待垃圾收集器,因为这样就没有句柄了。
https://stackoverflow.com/questions/8798443
复制相似问题