ホームページ  >  記事  >  バックエンド開発  >  unset() 関数を使用して単一または複数の変数インスタンスを破棄する方法の詳細な説明

unset() 関数を使用して単一または複数の変数インスタンスを破棄する方法の詳細な説明

伊谢尔伦
伊谢尔伦オリジナル
2017-06-24 09:38:507960ブラウズ

unset関数は、PHPに付属している変数を破棄する関数です。 unsetを使ってstatic変数を破棄する方法を紹介しましたが、同時に配列変数を破棄する方法も紹介しました。以下の例を参照してください。

例 1. unset() の例

<?php
// 销毁单个变量
unset ($foo);
// 销毁单个数组元素
unset ($bar[&#39;quux&#39;]);
// 销毁一个以上的变量
unset ($foo1, $foo2, $foo3);
?>

unset() 関数内の動作は、破棄する変数の種類によって異なります。

関数内でグローバル変数を unset() した場合、ローカル変数のみが破棄され、呼び出し環境内の変数は unset() を呼び出す前と同じ値を保持します。

<?php
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = ‘bar’;
destroy_foo();
echo $foo;
?>

上記の例は次のように出力されます:

bar

関数内でreferenceによって渡された変数をunset()すると、ローカル変数のみが破棄され、呼び出し環境の変数はunset()のままになります。以前と同じ値。

<?php
function foo(&$bar) {
unset($bar);
$bar = “blah”;
}
$bar = ‘something’;
echo “$barn”;
foo($bar);
echo “$barn”;
?>

上記の例は次のように出力します:

something
something

unset() 静的変数
厳密に言えば、unset() を使用して静的変数を破棄しても、変数名と変数値の間の参照が壊れるだけです。

例:

<?php
function foo() {
    static $b;
        $a++;
    $b++;
    echo "$a---$bn";
    unset($a,$b);
    var_dump($a);
    var_dump($b);
    echo "######################n";
}
foo();
foo();
foo();
?>

この例を実行すると、出力:

1---1
NULL
NULL
#######################
1---2
NULL
NULL
#######################
1---3
NULL
NULL
#######################

unset() グローバル変数
は、関数内のグローバル変数を unset() する場合、ローカル変数のみが変更されます。破棄され、呼び出し環境の変数には unset() を呼び出す前と同じ値が保持されます。

次の 2 つの例を比較してください:

<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}
$foo = &#39;bar&#39;;
destroy_foo();
echo $foo;
?>
<?php
function destroy_foo() {
    global $foo;
    unset($GLOBALS[&#39;foo&#39;]);
}
$foo = &#39;bar&#39;;
destroy_foo();
echo $foo;
?>

最初の例を実行すると bar が出力されますが、2 番目の例は何も出力されません。

以上がunset() 関数を使用して単一または複数の変数インスタンスを破棄する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。