比方说,我有我用它来创建变量变量字符串数组:是不同的PHP变量的变量解析为相同的变量名称相同的变量?
$var_arr = ["item1", "item2", "item3"];
foreach ($var_arr as $item) {
$$item = array();
}
然后在我的代码的其他地方我有一个基于不同的数据源上重新创建变量变量:
$user_input = [ "prod1" => "widget", "qty1" => 3, "prod2" => "thingy", "qty2" => 1, "prod3" => "dingus", "qty3" => 7 ];
foreach ($user_input as $key => $value) {
$a = "item" . substr($key, -1);
array_push($$a, $value);
}
$$ item和$$是同一个变量,还是它们引用不同的内存块?
$$ item'创造' $ item1'。 '$$ a'会覆盖'$ item1',因为它具有相同的名称。我认为这与你正在做的https://eval.in/840949(或https://eval.in/840950,因为你正在追加)大致相同 – chris85
感谢@ chris85作为演示。它帮助我们看到了一个可行的例子! –