PHP unset函數原理及使用方法解析
unset—釋放給定的變量
說明
unset(mixed$var[,mixed$...] ) :void
unset()銷毀指定的變量。
unset()在函數中的行為會依賴于想要銷毀的變量的類型而有所不同。
如果在函數中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 '$barn'; foo($bar); echo '$barn'; ?>
以上例程會輸出:
somethingsomething
如果在函數中unset()一個靜態變量,那么在函數內部此靜態變量將被銷毀。但是,當再次調用此函數時,此靜態變量將被復原為上次被銷毀之前的值。
<?php function foo() { static $bar; $bar++; echo 'Before unset: $bar, '; unset($bar); $bar = 23; echo 'after unset: $barn'; } foo(); foo(); foo(); ?>
以上例程會輸出:
Before unset: 1, after unset: 23Before unset: 2, after unset: 23Before unset: 3, after unset: 23
參數
var
要銷毀的變量。
...
其他變量……
返回值
沒有返回值。
范例
Example #1unset()示例
<?php // 銷毀單個變量 unset ($foo); // 銷毀單個數組元素 unset ($bar[’quux’]); // 銷毀一個以上的變量 unset($foo1, $foo2, $foo3); ?>
Example #2 使用(unset)類型強制轉換
(unset)類型強制轉換常常和函數unset()引起困惑。 為了完整性,(unset)是作為一個NULL類型的強制轉換。它不會改變變量的類型。
<?php $name = ’Felipe’; var_dump((unset) $name); var_dump($name); ?>
以上例程會輸出:
NULLstring(6) 'Felipe'
注釋
Note:因為是一個語言構造器而不是一個函數,不能被可變函數調用。 It is possible to unset even object properties visible in current context. 在 PHP 5 之前無法在對象里銷毀$this。 在unset()一個無法訪問的對象屬性時,如果定義了__unset()則對調用這個重載方法。以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: