如何打印变量和数组的名称?

时间:2012-09-28 19:24:00

标签: php arrays variables

  

可能重复:
  How to get a variable name as a string in 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

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

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

2 个答案:

答案 0 :(得分: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;
}
?>

答案 1 :(得分: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; 
}