取消设置变量变量

时间:2010-12-07 04:13:42

标签: php variables

如何取消设置表示数组元素的变量?

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

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

上面的代码不会取消设置数组元素x['a']。我需要使用相同的remove()函数来处理$_GET['ijk']

5 个答案:

答案 0 :(得分:1)

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

如果你想使用一个函数取消设置,这样的事情会更好。

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

It works!

答案 1 :(得分:1)

你可以尝试,

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

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

答案 2 :(得分:0)

变量变量不能与超全局变量一起使用,因此如果您需要它也适用于$_GET,则需要使用不同的方法。

来源:http://php.net/manual/en/language.variables.variable.php

答案 3 :(得分: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"}); 
    }
?>

答案 4 :(得分:-2)

unset更容易输入remove

与数组元素一起使用时,数组仍然存在

您可以重写函数以将参数视为参考;

编辑:更新为使用alex的代码 function remove(&$array, $key){ unset($array[$key]); } remove($x,'a');