unset函數是php內建的一個銷毀變數的函數,我們介紹了利用unset來銷毀靜態變數與全域變數的方法,同時出可以銷毀陣列變數哦,下面我們看執行個體。
例 1. unset() 樣本
| 代碼如下 |
複製代碼 |
|
// 銷毀單個變數
unset ($foo);
// 銷毀單個數組元素
unset ($bar['quux']);
// 銷毀一個以上的變數
unset ($foo1, $foo2, $foo3);
?> |
unset() 在函數中的行為會依賴於想要銷毀的變數的類型而有所不同。
如果在函數中 unset() 一個全域變數,則只是局部變數被銷毀,而在調用環境中的變數將保持調用 unset() 之前一樣的值。
| 代碼如下 |
複製代碼 |
|
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = ‘bar’;
destroy_foo();
echo $foo;
?> |
上邊的例子將輸出:
bar
如果在函數中 unset() 一個通過引用傳遞的變數,則只是局部變數被銷毀,而在調用環境中的變數將保持調用 unset() 之前一樣的值。
| 代碼如下 |
複製代碼 |
|
function foo(&$bar) {
unset($bar);
$bar = “blah”;
}
$bar = ‘something’;
echo “$barn”;
foo($bar);
echo “$barn”;
?>
上邊的例子將輸出:
something
something |
unset() 靜態變數
嚴格講,使用 unset() 銷毀靜態變數,只是斷開了變數名和變數值之間的引用。
例子:
| 代碼如下 |
複製代碼 |
|
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() 之前一樣的值。
試著比較如下兩個例子:
| 代碼如下 |
複製代碼 |
|
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
function destroy_foo() {
global $foo;
unset($GLOBALS['foo']);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?> |
運行第一個例子會輸出:bar ,而第二個例子則不會有任何輸出。
http://www.bkjia.com/PHPjc/628977.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628977.htmlTechArticleunset函數是php內建的一個銷毀變數的函數,我們介紹了利用unset來銷毀靜態變數與全域變數的方法,同時出可以銷毀陣列變數哦,下面我們看...