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