• ベストアンサー

参照渡しした変数名を取得する方法

参照渡しにした変数名を取得したいのですが、 PHPでは可能でしょうか? <? a($varname[1]); function a(&$varname){ echo ????; } ?> ■出力結果 varname[1] とすることは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.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;   }  } } オブジェクトならもう少しスマートに書けますが。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

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

すると、全ての回答が全文表示されます。
回答No.1

<?php a($varname[1]); function a(&$var){ echo $var; } ?> ではダメでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A