如何取消設置表示數組元素的變量變量?取消設置變量
function remove($var) {
unset($$var);
}
$x=array('a'=>1,'b'=>2);
remove('$x["a"]');
var_dump(isset($x['a']));
上面的代碼不會取消設置數組元素x['a']
。我需要同樣的remove()函數來與$_GET['ijk']
一起工作。
如何取消設置表示數組元素的變量變量?取消設置變量
function remove($var) {
unset($$var);
}
$x=array('a'=>1,'b'=>2);
remove('$x["a"]');
var_dump(isset($x['a']));
上面的代碼不會取消設置數組元素x['a']
。我需要同樣的remove()函數來與$_GET['ijk']
一起工作。
unset
是更容易輸入,然後remove
當數組元素使用它,陣列將仍然存在
你可以重寫你的函數來處理參數作爲參考;
編輯:更新爲使用Alex的代碼 function remove(&$array, $key){ unset($array[$key]); } remove($x,'a');
只需使用unset()
或(unset)
演員。
如果你想使用一個函數來取消設置,這樣的事情會更好。
function removeMemberByKey(&$array, $key) {
unset($array[$key]);
}
可變變量不能與超全局使用,所以如果你需要它爲$_GET
以及工作,你需要看看使用不同的方法。
你可以試試,
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"});
}
?>
如果你只關心`$ _GET`,然後直接取消它。 – Matthew 2010-12-07 04:26:56
爲什麼不直接使用`unset($ x [「a」])`? – Gumbo 2011-05-21 16:24:15