電子書籍の厳選無料作品が豊富!

<?php
$test[a][b][c] = "成功";
$string = 'test[a][b][c]';

echo ${$string};
?>

このコードで"成功"を出したいのですが上手くいきません
恐らく可変変数ではブラケットを文字列として扱ってしまっているのが原因だと思います
どうにかうまくこれを可変変数のように上手く実現させる方法はないでしょうか?

A 回答 (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;");
?>
    • good
    • 0

<?php


$test[a][b][c] = "成功";
$string = 'test[a][b][c]';

$com = "echo $" . $string . ";";
eval($com);
?>

使用上の注意をよく読んで正しくお使いください。
http://php.net/manual/ja/function.eval.php
    • good
    • 0

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