unset函數是php自帶的一個銷毀變數的函數,我們介紹了利用unset來銷毀靜態變數與全域變數的方法,同時出可以銷毀數組變數哦,下面我們來看實例。
範例 1. unset() 範例
<?php // 销毁单个变量 unset ($foo); // 销毁单个数组元素 unset ($bar['quux']); // 销毁一个以上的变量 unset ($foo1, $foo2, $foo3); ?>
unset() 在函數中的行為會依賴想要銷毀的變數的型別而有所不同。
如果在函數中 unset() 一個全域變量,則只是局部變數被銷毀,而在呼叫環境中的變數將保持在呼叫 unset() 之前的值。
<?php function destroy_foo() { global $foo; unset($foo); } $foo = ‘bar’; destroy_foo(); echo $foo; ?>
上邊的範例將輸出:
bar
如果在函數中unset() 一個透過引用傳遞的變量,則只是局部變量被銷毀,而在呼叫環境中的變數將保持呼叫unset() 之前一樣的值。
<?php function foo(&$bar) { unset($bar); $bar = “blah”; } $bar = ‘something’; echo “$barn”; foo($bar); echo “$barn”; ?>
上邊的例子將輸出:
something
something
unset() 靜態變數
嚴格講,使用unset() 銷毀靜態變量,只是斷開了變數名和變數值之間的參考。
範例:
<?php function foo() { static $b; $a++; $b++; echo "$a---$bn"; unset($a,$b); var_dump($a); var_dump($b); echo "######################n"; } foo(); foo(); foo(); ?>
執行此例子,輸出:
1---1 NULL NULL ####################### 1---2 NULL NULL ####################### 1---3 NULL NULL #######################
unset() 全域變數
同unset() 靜態變數一樣,如果在函數中unset( ) 一個全域變量,則只是局部變數被銷毀,而在呼叫環境中的變數將保持呼叫unset() 之前相同的值。
試著比較如下兩個例子:
<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>
<?php function destroy_foo() { global $foo; unset($GLOBALS['foo']); } $foo = 'bar'; destroy_foo(); echo $foo; ?>
運行第一個例子會輸出:bar ,而第二個例子則不會有任何輸出。
以上是如何利用unset()函數銷毀單一或多個變數實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!