unset関数は、PHPに付属している変数を破棄する関数です。 unsetを使ってstatic変数を破棄する方法を紹介しましたが、同時に配列変数を破棄する方法も紹介しました。以下の例を参照してください。
例 1. unset() の例
<?php // 销毁单个变量 unset ($foo); // 销毁单个数组元素 unset ($bar['quux']); // 销毁一个以上的变量 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 = 'bar'; destroy_foo(); echo $foo; ?>
<?php function destroy_foo() { global $foo; unset($GLOBALS['foo']); } $foo = 'bar'; destroy_foo(); echo $foo; ?>
最初の例を実行すると bar が出力されますが、2 番目の例は何も出力されません。
以上がunset() 関数を使用して単一または複数の変数インスタンスを破棄する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。