配列要素を表す変数変数の設定を解除するにはどうすればよいですか?変数変数の設定を解除する
function remove($var) {
unset($$var);
}
$x=array('a'=>1,'b'=>2);
remove('$x["a"]');
var_dump(isset($x['a']));
上記のコードは、配列要素x['a']
の設定を解除しません。 $_GET['ijk']
と同じremove()関数が必要です。
配列要素を表す変数変数の設定を解除するにはどうすればよいですか?変数変数の設定を解除する
function remove($var) {
unset($$var);
}
$x=array('a'=>1,'b'=>2);
remove('$x["a"]');
var_dump(isset($x['a']));
上記のコードは、配列要素x['a']
の設定を解除しません。 $_GET['ijk']
と同じremove()関数が必要です。
unset
は配列要素でそれを使用する場合、配列はまだあなたがリファレンスとしてパラメータを処理するために、あなたの関数を書き換えることができ
存在します、その後remove
を入力する方が簡単です。
EDIT:ただunset()
または(unset)
キャストを使用アレックスのコード function remove(&$array, $key){ unset($array[$key]); } remove($x,'a');
を使用するように更新。
機能を使用して設定を解除する場合は、このようなものが良いでしょう。
function removeMemberByKey(&$array, $key) {
unset($array[$key]);
}
変数変数は、スーパーグローバルで使用することはできませんので、あなたはそれは同様$_GET
のために働く必要がある場合は、別の方法を使用して見てする必要があります。
出典:あなたはそれを直接、その後解除、$ _GET` `についての唯一の懸念がある場合http://php.net/manual/en/language.variables.variable.php
あなたが試すことができ、
function remove(&$var,$key) {
unset($var[$key]);
}
$x=array('a'=>1,'b'=>2);
remove($x,'a');
var_dump(isset($x['a']));
Try This:
<?php
/* Unset All Declair PHP variable*/
$PHP_Define_Vars = array_keys(get_defined_vars());
foreach($PHP_Define_Vars as $Blast) {
// or may be reset them to empty string# ${"$var"} = "";
unset(${"$Blast"});
}
?>
。 – Matthew
'unset($ x [" a "])'を直接使わないのはなぜですか? – Gumbo