我有这个变量
$foo['title'] = 'Hello World';
我想从字符串中访问此变量。
$string = '$foo["title"]';
如何通过变量$string
显示“Hello World”?
我搜索了另一个主题,我发现了类似的东西,不幸的是它不起作用。
$foo['title'] = "Hello, world!";
$bar = "foo['title']";
echo $$bar;
答案 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]