功能說明
刪除變數或函式
PHP語言構造器— 釋放給定的變數
語法
1、unset [-fv][變數或函式名稱];
2、void unset( mixed$var [, mixed$var [, $... ]] )
unset() 銷毀指定的變數。注意在 PHP 3 中, unset() 將返回 TRUE(實際上是整型值 1),而在 PHP 4 中, unset() 不再是一個真正的函式:它現在是一個語句。這樣就沒有了返回值,試圖獲取 unset() 的返回值將導致解析錯誤。
補充說明
1、linux系統中unset為shell內建指令,可刪除全局變數;
2、PHP-unset()示例:
(1)
<?php
// 銷毀單個變數
unset ($foo);
// 銷毀單個數組元素
unset ($bar['quux']);
// 銷毀一個以上的變數
unset ($foo1, $foo2, $foo3);
?>
(2)unset() 在函式中的行為會依賴於想要銷毀的變數的類型而有所不同。
如果在函式中 unset() 一個全局變數,則只是局部變數被銷毀,而在調用環境中的變數將保持調用 unset() 之前一樣的值。
<?php
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
上邊的例子將輸出:bar(3)如果在函式中 unset() 一個通過引用傳遞的變數,則只是局部變數被銷毀,而在調用環境中的變數將保持調用 unset() 之前一樣的值。
<?php
function foo(&$bar) {
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n";
foo($bar);
echo "$bar\n";
?>
上邊的例子將輸出:something something
(4)如果在函式中 unset() 一個靜態變數,則 unset() 將銷毀此變數及其所有的引用。
<?php
function foo() {
static $a;
$a++;
echo "$a\n";
unset($a);
}
foo();
foo();
foo();
?>
上邊的例子將輸出:123
(5)如果您想在函式中 unset() 一個全局變數,可使用 $GLOBALS 數組來實現:
<?php
function foo() {
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
參數
-f 僅刪除函式。
-v 僅刪除變數。