PHP のマニュアルには、「unset() は指定された変数を破棄する」と記載されています。次の例があります。
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
上記のコードは次を出力します。
bar
では、「unset」は何をしたのでしょうか? それを取得しないでください。説明してください。
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");