我知道
$b = 1;
$var = "b";
$$var = 2;
echo $b;
将显示2个
但当我在阵列上尝试时,失败了
$c[1] = 1;
$var = "c[1]";
$$var = 2;
echo $c[1];
$d[1] = 1;
$var = "d";
$$var[1] = 2;
echo $d[1];
他们都显示1,为什么?
在第一个示例中,不能使用索引,因为它被假定为变量名的一部分。
在第二个例子中,对于复杂的语法,您需要使用大括号来消除歧义。通过这种方式,PHP知道它是$d[1]
的内容,而不是$var[1]
的内容。
$d[1] = 1;
$var = "d";
${$var}[1] = 2;
echo $d[1];