unsetの説明

9709 ワード

unset
(PHP 4, PHP 5)
unset-指定した変数を解放します
説明
void
unset (
mixed $var [,
mixed $... ] )
unset()指定した変数を破棄します.
unset()の関数での動作は、破棄する変数のタイプによって異なります.
関数内のunset()がグローバル変数である場合、ローカル変数は破棄され、呼び出し環境内の変数はunset()を呼び出す前と同じ値を維持します. <?php
function destroy_foo() {
    global 
$foo;
    unset(
$foo);
}

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

以上のルーチンが出力します.
bar


関数内のunset()グローバル変数を使用する場合は、$GLOBALS配列を使用して実装します. <?php
function foo() 
{
    unset(
$GLOBALS['bar']);
}

$bar "something";
foo();
?>

関数内のunset()が参照によって渡される変数である場合、ローカル変数は破棄され、呼び出し環境内の変数はunset()を呼び出す前と同じ値を維持します. <?php
function foo(&$bar) {
    unset(
$bar);
    
$bar "blah";
}

$bar 'something';
echo 
"$bar
"
;

foo($bar);
echo 
"$bar
"
;
?>

以上のルーチンが出力します.
something

something


関数内のunset()静的変数の場合、関数内の静的変数は破棄されます.ただし、この関数を再度呼び出すと、この静的変数は最後に破棄される前の値に復元されます. <?php
function foo()
{
    static 
$bar;
    
$bar++;
    echo 
"Before unset: $bar, ";
    unset(
$bar);
    
$bar 23;
    echo 
"after unset: $bar
"
;
}

foo();
foo();
foo();
?>

以上のルーチンが出力します.
Before unset: 1, after unset: 23

Before unset: 2, after unset: 23

Before unset: 3, after unset: 23


パラメータvar
破棄する変数....
その他の変数......
戻り値
戻り値がありません.
更新ログ
バージョン#バージョン#
説明
4.0.1
複数のパラメータのサポートが追加されました.

Example#1 unset()の例 <?php
// 
unset ($foo);

// 
unset ($bar['quux']);

// 
unset($foo1$foo2$foo3);
?>

Example#2使用(unset)タイプ強制変換
(unset)タイプの強制変換は、関数unset()としばしば困惑する.整合性のために、(unset)はNULLタイプとしての強制変換である.変数のタイプは変わりません. <?php
$name 
'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

以上のルーチンが出力します.
NULL

string(6) "Felipe"


注記
Note:関数ではなく言語コンストラクタなので、かへんかんすうで呼び出すことはできません.
Note:
It is possible to unset even object properties visible in current context.
Note:
PHP 5の前にオブジェクトに$thisを破棄することはできません.
Note:
unset()がアクセスできないオブジェクト属性の場合、__unset()が定義されている場合、このリロードメソッドが呼び出されます.
参照
isset()-変数がに設定かどうかを検出する.
empty()-変数が空のであるかどうかを確認します.
__unset()
array_splice()-配列の一部を除去し、の代わりに他の値を使用する.