如何从另一个变量名创建变量?

时间:2009-03-20 00:53:19

标签: php variables loops

好的...在php中我该怎么做?鉴于以下情况:

// array of letters
var $letters = array('a', 'b', 'c');
// loop through array and create empty arrays with names like $a, $b, $c
foreach($letters as $letter) {
    var $$letter = array();
}

3 个答案:

答案 0 :(得分:3)

您的代码几乎是正确的。你只需要在第2行和第5行删除'var'。

// array of letters
$letters = array('a', 'b', 'c');
// loop through array and create empty arrays with names like $a, $b, $c
foreach($letters as $letter) {
    $$letter = array();
}

这正常(如您所述)。我测试了它。

更多information on variable variables here

顺便说一句,我建议不要在PHP中使用eval()。

答案 1 :(得分:2)

你可能不想这样做。想要使用变量变量通常表示无法理解数据结构和/或过度聪明。如果你真的想这样做,你可以说像......

extract(array_fill_keys($letters, array()));

...但如果你没有,那将是最好的。使用嵌套数组可能是一个更好的主意 - 特别是因为您可以说$nested['a'][] = 5并且PHP会将值附加到数组中,如果没有任何内容则创建一个。或者,你可以说$varname['key'] = 123,再次,PHP将为你自动创建数组。

答案 2 :(得分:0)

查看eval()函数:Eval