使用'unset'有什么好处?

时间:2013-05-23 17:15:40

标签: php unset

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

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

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

上面的代码将输出:

bar

那么'未设置'是做什么的?不明白。请解释一下。

2 个答案:

答案 0 :(得分:4)

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

e.g。

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

在很大程度上与

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

眼睛看起来有点容易。

答案 1 :(得分:0)

除了Marc的评论之外,unset通常以各种方式使用。只是一个例子 -

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

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

//gives us
//array("a","c");