同 unset() 静态变量一样,如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
试着比较如下两个例子:
<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?> 
<?php
function destroy_foo() {
    global $foo;
    unset($GLOBALS['foo']);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
运行第一个例子会输出:bar ,而第二个例子则不会有任何输出。
关于静态变量(static)与全局变量(global)引用更详细的官方参考文档:http://www.php.net/manual/zh/language.variables.scope.php#language.variables.scope.references
提示