1

可能重复:
如何在 PHP 中将变量名作为字符串获取?

我需要类似于以下代码的内容:

代码

<?php

$var1='my var 1';

$array1['1']='first position of my array 1';
$array1['2']='second position of my array 1';

echo name($var1);

echo "<br>";

echo name($array1);

function name($parameter){
...?...
}
?>

屏幕返回

var1
array1

所以,我需要编写一个函数,给我传递给它的变量或数组的名称。我该怎么做?

我将在另一个函数上使用这个函数来对我执行一些任务......

4

2 回答 2

1

正如@bfavaretto 所说,

这对我来说很好:

<?php

$var1='my var 1';

$array1['1']='first position of my array 1';
$array1['2']='second position of my array 1';

echo name($var1);

echo "<br>";

echo name($array1);

function name(&$var, $scope=false, $prefix='unique', $suffix='value'){
    if($scope) $vals = $scope;
    else      $vals = $GLOBALS;
    $old = $var;
    $var = $new = $prefix.rand().$suffix;
    $vname = FALSE;
    foreach($vals as $key => $val) {
      if($val === $new) $vname = $key;
    }
    $var = $old;
    return $vname;
}
?>
于 2012-09-28T19:44:38.520 回答
0

尝试通过以下方式修改函数(未经测试)

function print_var_name($var) { 
    $left=var_export($var, true);
    foreach($GLOBALS as $var_name => $value) { 
        $right=var_export($value, true);
        if ($left === $right) { 
             return $var_name; 
        } 
    } 
    return false; 
} 
于 2012-09-28T19:41:31.040 回答