各位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數組來實現即可。