PHP 手册说“unset() 会破坏指定的变量。” 它有以下示例:
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
上面的代码将输出:
bar
那么“未设置”做了什么?不明白。请解释。
global 使局部变量成为对全局范围内变量的引用。当您在函数内部取消设置时,您正在取消设置该引用,而不是“上方”变量。
例如
function foo() {
global $bar;
unset($bar);
}
在大多数情况下做同样的事情
function foo() {
$bar = &$GLOBALS['bar'];
unset($bar); // kill the local reference, not the global variable.
}
这对眼睛来说更容易一些。
除了 Marc 的评论之外,unset 还经常以多种方式使用。举个例子——
取消设置数组中的某个项目:
$arr = array("a","b","c");
unset($arr['b']);
print_r($arr);
//gives us
//array("a","c");