从字符串名称访问变量

时间:2014-02-02 17:53:22

标签: php arrays string variables

我有这个变量

$foo['title'] = 'Hello World';

我想从字符串中访问此变量。

$string = '$foo["title"]';

如何通过变量$string 显示“Hello World”?

我搜索了另一个主题,我发现了类似的东西,不幸的是它不起作用。

$foo['title'] = "Hello, world!";
$bar = "foo['title']";
echo $$bar;

2 个答案:

答案 0 :(得分:2)

实际上我不确定我是否了解你的目标。

你想要这个吗?

$foo['title'] = "Hello, world!";
$bar = "$foo[title]";
echo $bar;

结果:

  

你好,世界!

这与此相同:

$bar = $foo['title'];

或者您想要添加/追加某些内容?像这样:

$bar = 'prepend something ' . $foo['title'] . ' append something';

答案 1 :(得分:0)

您需要将参数从变量名称拆分为数组,然后将变量名称括在花括号中。所以:

// get array argument
$matches = array();
preg_match("/\['(?s)(.*)'\]/", $bar, $matches);
$array_arg = $matches[1];

// get variable name
$arr = explode("[", $string, 2);
$var_name = $arr[0];

// put it together
${$var_name}[$array_arg]