首頁  >  文章  >  後端開發  >  如何利用unset()函數銷毀單一或多個變數實例詳解

如何利用unset()函數銷毀單一或多個變數實例詳解

伊谢尔伦
伊谢尔伦原創
2017-06-24 09:38:507961瀏覽

unset函數是php自帶的一個銷毀變數的函數,我們介紹了利用unset來銷毀靜態變數與全域變數的方法,同時出可以銷毀數組變數哦,下面我們來看實例。

範例 1. unset() 範例

<?php
// 销毁单个变量
unset ($foo);
// 销毁单个数组元素
unset ($bar[&#39;quux&#39;]);
// 销毁一个以上的变量
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 = &#39;bar&#39;;
destroy_foo();
echo $foo;
?>
<?php
function destroy_foo() {
    global $foo;
    unset($GLOBALS[&#39;foo&#39;]);
}
$foo = &#39;bar&#39;;
destroy_foo();
echo $foo;
?>

運行第一個例子會輸出:bar ,而第二個例子則不會有任何輸出。

以上是如何利用unset()函數銷毀單一或多個變數實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn