各位phper,大家好!
今天小白请教php中unset()函数在何时使用才是正确的?
大伙都知道unset是取消赋值,比如
$aa=asdfasdf;
echo $aa; //得到的结果是asdfasdf
unset $aa;
echo $aa; //得到的结果是空
它的用法到是知道
小白疑惑的就是在那些情况下应该使用unset()函数?
使用unset()函数后,能给程序带来那些好处或者坏处?
小白先谢谢给位大神啦,o(∩∩)o...哈哈,^_^
回复内容: 各位phper,大家好!
今天小白请教php中unset()函数在何时使用才是正确的?
大伙都知道unset是取消赋值,比如
$aa=asdfasdf;
echo $aa; //得到的结果是asdfasdf
unset $aa;
echo $aa; //得到的结果是空
它的用法到是知道
小白疑惑的就是在那些情况下应该使用unset()函数?
使用unset()函数后,能给程序带来那些好处或者坏处?
小白先谢谢给位大神啦,o(∩∩)o...哈哈,^_^
unset是用来取消一个变量,释放这个名称的.应用的场景真的不算太多,因为php没有释放资源的需求,php进程只会存在很短时间.
我觉得应用在数组上的情况要多一点,用来删去数组中一个元素.比如,为了把一个用户的信息插入数据库,我定义了这么一个数组:
$user = [name => xxoo, passwd => 4d5c01842f37d, email => xxoo@xo.ox];$db->insert($user);
然后我还希望把这一条数据插入到日志中,但我又不希望在日志中保存密码,这时我只需要:
unset($user[passwd]);$log->append($user);
由于php的资源自动回收机制,当页面执行完毕后,会自动释放所占用过的内存,所以在销毁变量释放内存这方面,一般用的不是太多。
但当较大的数组等变量较多时,在之后没再用到的情况下,可以unset掉以便释放内存。尤其是在可用内存比较紧张的时候。
另外要注意的是,
unset在函数中只能销毁局部变量。如果在程序中需要用到销毁全局变量的应该如何做呢?也很简单,用$globals数组来实现即可。
