0

PHP 手册说“unset() 会破坏指定的变量。” 它有以下示例:

<?php
function destroy_foo() 
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

上面的代码将输出:

bar

那么“未设置”做了什么?不明白。请解释。

4

2 回答 2

3

global 使局部变量成为对全局范围内变量的引用。当您在函数内部取消设置时,您正在取消设置该引用,而不是“上方”变量。

例如

function foo() {
   global $bar;
   unset($bar);
}

在大多数情况下做同样的事情

function foo() {
   $bar = &$GLOBALS['bar'];
   unset($bar); // kill the local reference, not the global variable.
}

这对眼睛来说更容易一些。

于 2013-05-23T17:48:43.413 回答
0

除了 Marc 的评论之外,unset 还经常以多种方式使用。举个例子——

取消设置数组中的某个项目:

$arr = array("a","b","c");
unset($arr['b']);
print_r($arr);

//gives us
//array("a","c");
于 2013-05-23T17:20:10.970 回答