ホームページ  >  記事  >  バックエンド開発  >  php unset() は単一または複数の変数を破棄します_PHP チュートリアル

php unset() は単一または複数の変数を破棄します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:14:401265ブラウズ

unset関数はPHPに付属している変数を破棄する関数です。 unsetを使って静的変数やグローバル変数を破棄する方法を紹介しましたが、同時に配列変数を破棄する方法も紹介しました。 。

例 1. unset() の例

コードは次のとおりです コードをコピー

// 単一の変数を破棄します
設定を解除 ($foo);

//単一の配列要素を破棄します
設定を解除します ($bar['quux']);

// 複数の変数を破棄します
設定を解除します ($foo1, $foo2, $foo3);
?>

関数内の

unset() の動作は、破棄する変数のタイプによって異なります。

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

コードは次のとおりです コードをコピー

関数 destroy_foo() {
グローバル $foo;
unset($foo);
}

$foo = 'バー';
destroy_foo();
エコー $foo;
?>

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

バー

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

コードは次のとおりです コードをコピー

関数 foo(&$bar) {
unset($bar);
$bar = “まあ”;
}

$bar = '何か';
エコー「$barn」;

foo($bar);
エコー「$barn」;
?>
上記の例では次のように出力されます:

何か
何か

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

例:

コードは次のとおりです コードをコピー

関数 foo() {
静的 $b;
$a++;
$b++;
エコー "$a---$bn";
unset($a,$b);
var_dump($a);
var_dump($b);
エコー "######################n";
}

ふー();
foo();
foo();
?>
この例を実行すると、次のように出力されます:

1---1
ヌル
ヌル
########################################## 1---2
ヌル
ヌル
########################################## 1---3
ヌル
ヌル
##########################################

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

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

コードは次のとおりです コードをコピー

関数 destroy_foo() {
グローバル $foo;
unset($foo);
}

$foo = 'バー';
destroy_foo();
エコー $foo;
?>

関数 destroy_foo() {
グローバル $foo;
unset($GLOBALS['foo']);
}

$foo = 'バー';
destroy_foo();
エコー $foo;
?>


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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628977.html技術記事 unset関数はPHPに付属している変数を破棄する関数です。unsetを使って静的変数やグローバル変数を破棄する方法も紹介しました。以下で見てみましょう。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。