1

我有这段代码:

<?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);    

谢谢你的帮助。

4

1 回答 1

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
?>
于 2013-04-21T11:13:20.033 回答