ホームページ  >  記事  >  バックエンド開発  >  请教PHP中关于unset()函数的运用场景

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

WBOY
WBOYオリジナル
2016-06-06 20:50:191334ブラウズ

各位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数组来实现即可。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。