2016-01-07 20 views
-1

我知道

$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,爲什麼?

+4

對於變量名稱,不能對數組索引使用變量變量。 – Rizier123

+1

請告訴我你爲什麼這樣做? – schellingerht

+0

我只想知道$$真的有什麼 – user2925565

回答

2

在你的第一個例子中,你不能使用索引,因爲它被假定爲變量名的一部分。

第二,您需要使用花括號來複雜的語法來消除歧義。這樣PHP知道它是$d[1]的內容,而不是$var[1]的內容。

$d[1] = 1; 
$var = "d"; 
${$var}[1] = 2; 
echo $d[1];