2010-12-07 122 views
1

如何取消設置表示數組元素的變量變量?取消設置變量

function remove($var) { 
    unset($$var); 
} 

$x=array('a'=>1,'b'=>2); 
remove('$x["a"]'); 
var_dump(isset($x['a'])); 

上面的代碼不會取消設置數組元素x['a']。我需要同樣的remove()函數來與$_GET['ijk']一起工作。

+0

如果你只關心`$ _GET`,然後直接取消它。 – Matthew 2010-12-07 04:26:56

+0

爲什麼不直接使用`unset($ x [「a」])`? – Gumbo 2011-05-21 16:24:15

回答

-2

unset是更容易輸入,然後remove

當數組元素使用它,陣列將仍然存在

你可以重寫你的函數來處理參數作爲參考;

編輯:更新爲使用Alex的代碼 function remove(&$array, $key){ unset($array[$key]); } remove($x,'a');

1

只需使用unset()(unset)演員。

如果你想使用一個函數來取消設置,這樣的事情會更好。

function removeMemberByKey(&$array, $key) { 
    unset($array[$key]); 
} 

It works!

1

你可以試試,

function remove(&$var,$key) { 
    unset($var[$key]); 
} 

$x=array('a'=>1,'b'=>2); 
remove($x,'a'); 
var_dump(isset($x['a'])); 
0
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"}); 
    } 
?>