您的位置:首頁技術文章
文章詳情頁

PHP unset函數原理及使用方法解析

瀏覽:106日期:2022-09-09 11:57:01

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()則對調用這個重載方法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: PHP
相關文章:
国产综合久久一区二区三区