据我所知(很少),有两种方法:
$var = new object()
然后:
// Method 1: Set to null
$var = null;
// Method 2: Unset
unset($var);
其他更好的方法?我在这里劈头发吗?
原文由 PandemoniumSyndicate 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我所知(很少),有两种方法:
$var = new object()
然后:
// Method 1: Set to null
$var = null;
// Method 2: Unset
unset($var);
其他更好的方法?我在这里劈头发吗?
原文由 PandemoniumSyndicate 发布,翻译遵循 CC BY-SA 4.0 许可协议
可能是在您正在创建一个新的 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
之前关闭对象。
原文由 Subrat Kumar Palhar 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.5k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答912 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答977 阅读
1 回答948 阅读
1 回答873 阅读
您正在寻找
unset()
。但请考虑到 您不能显式销毁对象。
它将保留在那里,但是如果您取消设置对象并且您的脚本将 PHP 推送到内存限制,则不需要的对象将被垃圾收集。我会选择
unset()
(而不是将其设置为 null),因为它似乎具有更好的性能(未经测试,但记录在 PHP 官方手册 的评论之一中)。也就是说,请记住 PHP 总是会在页面被提供后立即销毁对象。所以这应该只在非常长的循环和/或大量密集页面上需要。