0

PHP のマニュアルには、「unset() は指定された変数を破棄する」と記載されています。次の例があります。

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

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

上記のコードは次を出力します。

bar

では、「unset」は何をしたのでしょうか? それを取得しないでください。説明してください。

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 に答える