unset()函數用來銷毀給定的變數。
PHP 版本需求: PHP 4, PHP 5, PHP 7
文法
void unset ( mixed $var [, mixed $... ] )
參數說明:
$var: 要銷毀的變數。
傳回值
沒有回傳值。
實例
實例
<?php //銷毀單一變數unset ( $foo ) ; //銷毀單一陣列元素unset ( $bar [ ' quux ' ] ) ; //銷毀一個以上的變數unset ( $foo1 , $foo2 , $foo3 ) ; ?>如果在函數中unset() 一個全域變量,則只是局部變數被銷毀,而在呼叫環境中的變數將保持呼叫unset() 之前一樣的值。
實例
<?php function destroy_foo ( ) { global $foo ; unset ( $foo ) ; } $foo = ' bar ' ; destroy_foo ( ) ; echo $foo ; ?>輸出結果為:
bar
如果您想在函數中unset() 一個全域變量,可使用$GLOBALS 數組來實現:
實例
<?php function foo ( ) { unset ( $GLOBALS [ ' bar ' ] ) ; } $bar = " something " ; foo ( ) ; ?>如果在函數中unset() 一個透過引用傳遞的變量,則只是局部變數被銷毀,而在呼叫環境中的變數將保持在呼叫unset() 之前相同的值。
實例
<?php function foo ( & $bar ) { unset ( $bar ) ; $bar = " blah " ; } $bar = ' something ' ; echo " $bar n " ; foo ( $bar ) ; echo " $bar n " ; ?>以上例程會輸出:
somethingsomething
如果在函數中unset() 一個靜態變量,那麼在函數內部此靜態變數將會被銷毀。但是,當再次呼叫此函數時,此靜態變數將被復原為上次被銷毀之前的值。
實例
<?php function foo ( ) { static $bar ; $bar ++; echo " Before unset: $bar , " ; unset ( $bar ) ; $bar = 23 ; echo " after unset: $bar n " ; } foo ( ) ; foo ( ) ; foo ( ) ; ?>以上例程會輸出:
Before unset: 1, after unset: 23Before unset: 2, after unset: 23Before unset: 3, after unset: 23