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関数に渡す方法はありますか?何かのようなもの:

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 に答える