在PHP中将变量名称传递给unset函数

时间:2013-04-21 10:39:40

标签: php unset

我有这段代码:

<?php

$a = "dog";
$b = "cat";
$c = "pig";

$params = array($a, $b, $c);

some_function($params);

unset($a, $b, $c);

//echo "<br>".$a."<br>".$b."<br>".$c;

?>

这里有什么优雅的方法,如何只传递变量名(不是评估变量)来取消设置功能?类似的东西:

unset($params); //but this doesn't work

而不是

unset($a, $b, $c);    

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

唯一的方法是定义变量名而不是变量值,并在$ GLOBALS中取消设置:

<?php

$a = "dog";
$b = "cat";
$c = "pig";
$myvar = 'another var';

$params = array('a', 'b', 'c', 'myvar');

myunset($params);

function myunset($params){
 foreach($params as $v){
  unset($GLOBALS[$v]);
 }
}

var_dump($myvar); //NULL
?>
相关问题