php无法将$$与数组一起使用


php could not use $$ with array

我知道

$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];