天使と悪魔選手権

参照渡しにした変数名を取得したいのですが、
PHPでは可能でしょうか?

<?
a($varname[1]);
function a(&$varname){
echo ????;
}
?>
■出力結果 varname[1]

とすることは可能でしょうか?

A 回答 (3件)

基本的にはそういう機能はないと思います。



$varname['unique_id'] = 1;
$varname[1] = 'data1';
a($varname);

function a(&$varname) {
 $unique_id = $varname['unique_id'];
  foreach ($GLOBALS as $key => $val) {
   if (is_array($val) && $val['unique_id'] == $unique_id) {
    echo $key;
  }
 }
}

オブジェクトならもう少しスマートに書けますが。
    • good
    • 0

できないと思います。



変数名が必要なら、最初から変数名を渡すというのはどうでしょう。
<?php
$varname[1]="test";
a("varname",1);
function a($name,$n){
echo "\${$name}[$n]=" . $GLOBALS[$name][$n];
}
?>
    • good
    • 0

<?php


a($varname[1]);
function a(&$var){
echo $var;
}
?>

ではダメでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!