• ベストアンサー

連想配列の可変変数

<?php $test[a][b][c] = "成功"; $string = 'test[a][b][c]'; echo ${$string}; ?> このコードで"成功"を出したいのですが上手くいきません 恐らく可変変数ではブラケットを文字列として扱ってしまっているのが原因だと思います どうにかうまくこれを可変変数のように上手く実現させる方法はないでしょうか?

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

evalを使うならreturnで戻すと汎用性があがります。 ただ配列の使い方もちょっとへんなので一部修正 <?php $test["a"]["b"]["c"] = "成功"; $string = 'test["a"]["b"]["c"]'; echo eval("return isset($$string)?($$string):null;"); $string = 'test["a"]["b"]'; echo eval("return isset($$string)?($$string):null;"); $string = 'test["x"]["y"]["z"]'; echo eval("return isset($$string)?($$string):null;"); ?>

その他の回答 (1)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

<?php $test[a][b][c] = "成功"; $string = 'test[a][b][c]'; $com = "echo $" . $string . ";"; eval($com); ?> 使用上の注意をよく読んで正しくお使いください。 http://php.net/manual/ja/function.eval.php

関連するQ&A