PHP中有個釋放變量的語句叫做unset(從PHP4開始unset已經不再是一個函數了,而是一個語句),前幾天用unset的時候出了點問題,於是把unset問題總結如下。如果您仔細閱讀過PHP的手冊,那麼就沒必要再看這篇文章了,這篇文章是寫給看手冊不用心的同學的。
首先要強調的一點是PHP unset全局變量在PHP中已經不再是一個函數了,既然不是函數,那麼就沒有了返回值,所以用的時候不能夠用unset的返回值來做判斷。
其次,在函數中,PHP unset全局變量只能銷毀局部變量,並不能銷毀全局變量,來看下手冊的一個例子
- < ?PHP
- function destroy_foo() {
- global $foo;
- unset($foo);
- }
- $foo = ‘bar’;
- destroy_foo();
- echo $foo;
- ?>
返回的結果為
bar
為什麼會這樣呢?原因就是PHP unset全局變量在函數中只能銷毀局部變量。如果在程序中需要用到銷毀全局變量的應該如何做呢?也很簡單,用$GLOBALS數組來實現。看下面的例子:
- < ?PHP
- function foo() {
- unset($GLOBALS['bar']);
- }
- $bar = “something”;
- foo();
- var_dump($bar);
- ?>