我有这段代码:
<?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);
感谢您的帮助。
答案 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
?>