Heim  >  Artikel  >  Backend-Entwicklung  >  请教PHP中关于unset()函数的运用场景

请教PHP中关于unset()函数的运用场景

WBOY
WBOYOriginal
2016-06-06 20:50:191380Durchsuche

各位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进程只会存在很短时间.

我觉得应用在数组上的情况要多一点,用来删去数组中一个元素. 比如,为了把一个用户的信息插入数据库,我定义了这么一个数组:

<code>$user = ["name" => "xxoo", "passwd" => "4d5c01842f37d", "email" => "xxoo@xo.ox"];
$db->insert($user);
</code>

然后我还希望把这一条数据插入到日志中,但我又不希望在日志中保存密码,这时我只需要:

<code>unset($user["passwd"]);
$log->append($user);
</code>

由于php的资源自动回收机制,当页面执行完毕后,会自动释放所占用过的内存,所以在销毁变量释放内存这方面,一般用的不是太多。

但当较大的数组等变量较多时,在之后没再用到的情况下,可以unset掉以便释放内存。尤其是在可用内存比较紧张的时候。

另外要注意的是,

unset在函数中只能销毁局部变量。如果在程序中需要用到销毁全局变量的应该如何做呢?也很简单,用$GLOBALS数组来实现即可。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn