あなたは、変数を破棄したいときは、使用することができます未設定()関数を達成するために。
文法
void unset ( mixed $var [, mixed $... ] )
可以同时销毁多个变量
パラメータ:
$ヴァール:変数が破壊されます。
返却値
戻り値なし。
例
<?php
<?php
// 销毁单个变量
$foo=123;
var_dump( $foo);
unset ($foo);
var_dump ($foo);
echo "<br />";
// 销毁单个数组元素
$bar=['quux'];
var_dump ($bar);
unset ($bar);
var_dump ($bar);
echo "<br />";
// 销毁一个以上的变量
unset($foo1, $foo1, $foo3);
?>
出力
int(123)
NULL
array(1) { [0]=> string(4) "quux" }
NULL
注意特別なニーズ:
- 機能の設定を解除()グローバル変数は、ローカル変数のみが破壊された場合。呼び出す環境での変数は、同じ値の前に解除()を呼び出すままになります。
例
<?php
function destroy_foo() {
global $foo;//global是起传递参数的作用,而并非使变量的作用域为全局。
//不能在用global声明变量的同时给变量赋值
unset($foo);//销毁了函数内部的$foo变量
var_dump($foo);//检查是否被销毁
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
出力は次のようになります。
NULL bar
- あなたは()関数のグローバル変数の設定を解除したい場合は、達成するために$ GLOBALS配列を使用することができます。
例
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
var_dump($bar);//检查是否被销毁
?>
出力:
NULL
- ドメイン内で使用可能なグローバル変数の役割を記述するためのすべての言及 - $ GLOBALSについて
説明
$ GLOBALS:すべてのグローバル変数の配列が含ま組み合わせ。キー変数は、配列の名前です。
例
<?php
function test() {
$foo = "local variable";//函数内部变量
echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}
$foo = "Example content";//函数外部变量
test();
?>
出力
$foo in global scope: Example content
$foo in current scope: local variable
- 関数内の未設定の場合は()参照によって渡された変数によってのみ、ローカル変数が破壊され、。呼び出し環境での変数は、同じ値の前にunset()を呼び出し続けます。
例
<?php
function foo(&$bar) {
unset($bar);
$bar = "blah";
echo $bar;
echo "<br/>";
}
$bar = 'something';
echo $bar;
echo "<br/>";
foo($bar);
echo $bar;
?>
上記の例の意志出力:
something
blah
something
- 関数の静的変数)(未設定の場合は、静的変数は、関数内で破壊されます。この関数が再び呼び出されたときしかし、この静的変数が破壊される前の最後の値に復元されます。
例
<?php
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar\n";
}
foo();
foo();
foo();
?>
上記の例の意志出力:
Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23