PHPunset()の使い方の詳細
5501 ワード
unset()指定した変数を破棄します.PHP 3ではunset()はTRUE(実際には整数値1)に戻りますが、PHP 4ではunset()は真の関数ではありません.現在は文です.これにより戻り値がなくなり、unset()の戻り値を取得しようとすると解析エラーが発生します.
例1.unset()の例
unset()の関数での動作は、破棄する変数のタイプによって異なります.
関数内のunset()がグローバル変数である場合、ローカル変数は破棄され、呼び出し環境内の変数はunset()を呼び出す前と同じ値を維持します.
上の例が出力されます.
関数内のunset()が参照によって渡される変数である場合、ローカル変数は破棄され、呼び出し環境内の変数はunset()を呼び出す前と同じ値を維持します.
上の例が出力されます.
関数内のunset()の静的変数の場合、unset()はこの変数とそのすべての参照を破棄します.//私はこの言葉の意味がよく理解できず、結果的に静的変数の値は破棄されなかった.
上の例が出力されます.
関数でグローバル変数をunset()する場合は、$GLOBALS配列を使用して次のことを行います.
注意:これは関数ではなく言語構造なので、変数関数で呼び出すことはできません.
例1.unset()の例
//
unset ($foo);
//
unset ($bar['quux']);
//
unset ($foo1, $foo2, $foo3);
?>
unset()の関数での動作は、破棄する変数のタイプによって異なります.
関数内のunset()がグローバル変数である場合、ローカル変数は破棄され、呼び出し環境内の変数はunset()を呼び出す前と同じ値を維持します.
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
上の例が出力されます.
bar
関数内のunset()が参照によって渡される変数である場合、ローカル変数は破棄され、呼び出し環境内の変数はunset()を呼び出す前と同じ値を維持します.
function foo(&$bar) {
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar
";
foo($bar);
echo "$bar
";
?>
上の例が出力されます.
something
something
関数内のunset()の静的変数の場合、unset()はこの変数とそのすべての参照を破棄します.//私はこの言葉の意味がよく理解できず、結果的に静的変数の値は破棄されなかった.
function foo() {
static $a;
$a++;
echo "$a
";
unset($a);
}
foo();
foo();
foo();
?>
上の例が出力されます.
1
2
3
関数でグローバル変数をunset()する場合は、$GLOBALS配列を使用して次のことを行います.
function foo() {
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
注意:これは関数ではなく言語構造なので、変数関数で呼び出すことはできません.