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