您好,登錄后才能下訂單哦!
小編給大家分享一下php怎么使用函數銷毀變量,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在開始文章之前,我們先來看一下什么是變量的銷毀。
PHP的變量或對象的銷毀可以分成顯式銷毀和隱式銷毀:
1、顯式銷毀,當對象沒有被引用時就會被銷毀,所以我們可以unset或為其賦值NULL;
2、隱式銷毀,PHP是腳本語言,在代碼執行完最后一行時,所有申請的內存都要釋放掉。
我們今天要介紹的就是顯式銷毀中的unset。
我們先來看一個小栗子。
<?php class Human { public $name = '張三'; public $gender = null; public function __destruct() { echo '結束!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); $d=null; echo '<hr />'; var_dump($a); echo '<hr />'; var_dump($b); echo '<hr />'; var_dump($c); echo '<hr />'; var_dump($d); ?>
結果是
話不多說,讓我們來看一下這個函數吧。
unset()函數用于銷毀給定的變量。
所以unset()并沒有真正銷毀變量中內存值,僅僅是切斷了變量與內存之間的關系,并將變量名也給干掉了,但內存只要還被引用著就不會被釋放;而在PHP中對象的傳值默認是引用傳值,這也解釋了Human
類中,$a被unset()
了,但是$b =$c = $d
一樣有值。
再來看看這個函數的語法吧。
void unset (要銷毀的變量)
如果unset()是函數中的全局變量,則只銷毀局部變量,并且調用環境中的變量將保持與調用unset()之前相同的值。
如果unset()是函數中通過引用傳遞的變量,則只銷毀局部變量,并且調用環境中的變量將保持與調用unset()之前相同的值。
如果unset()是函數中的靜態變量,則靜態變量將在函數中銷毀。但是,當再次調用此函數時,靜態變量將恢復到上次銷毀之前的值。
看完了這篇文章,相信你對“php怎么使用函數銷毀變量”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。