变量变量,构建数组变量

时间:2012-03-28 08:45:48

标签: php arrays variables

我希望能够将一个字符串(“['parent_array'] ['child_array']”)传递给一个函数,然后将该字符串和“my_array”拉到它的前面,然后创建一个变量变量。

然后在函数内部我执行print_r($$ string)并且没有任何结果。请参阅下面的代码以获得更好的解释。

// DOES NOT WORK
$string1 = "my_array['parent_array']['child_array']";
print_r($$string1); //prints nothing.

// WORKS
$string2 = "test";
$test = "This will be printed!";
print_r($$string2); //prints "This will be printed!

// WORKS
print_r($my_array['parent_array']['child_array']);

1 个答案:

答案 0 :(得分:0)

变量变量是一个丑陋,丑陋的黑客。

使用eval

示例:

$expr = "\$my_array['parent_array']['child_array']";
$val = 'not assigned';
eval("\$val = $expr;");
print_r($val);

但请遵循他们关于评估用户提供的代码的危险性的警告。

更新:以示例