我正在学习php和Mysql数据库。一切都很好。但是下面的代码让我感到困惑:
if(isset($connection)){
mysql_close($connection);
unset($connection);
}
据我所知,mysql_close()函数负责关闭连接。那么为什么在这里使用了额外的unset()函数呢?请解释一下。提前致谢。
答案 0 :(得分:5)
mysql_close($connection) 关闭与$ connection关联的MySQL服务器的非持久连接。如果未指定$ connection,则使用上次打开的链接。
- 此功能已弃用,请使用PDO或mysqli。
unset($connection) 清除指向php侧面结果的指针,但不对其指向的结果执行任何操作。
答案 1 :(得分:1)
额外的unset()
将允许垃圾收集清理已关闭的$connection
变量占用的内存,同时(很可能)您的应用程序代码会执行更多if (isset(...))
个条件那个变量也是。
答案 2 :(得分:0)
unset($connection)
只会使var $connection
等于NULL
。如果你没有执行unset
,则var $connection
仍将指向MySQL链接标识符,该标识符在mysql_close()
之后无效。这有点迂腐;无论您是unset
,$connection
var都不会在mysql_close()
之后使用。