變數變數陣列 (variable variables with arrys) 跟 variable variables 其實是相同的東西,但使用變數變數陣列時,有些小地方必須要特別小心。例如底下是一個錯誤的寫法:
$$a[0] = "Kitty!";
這個語法錯誤的地方在於 PHP 不曉得 $a 和 $a[0] 那一個才是變數,也就是:
$a = "Good"; $a[0] = "Bad";
$$a[0] = "Kitty!";
兩者所代表的意思是很模糊的,PHP 分不清楚到底是:
$Good[0] = "Kitty!";
還是:
$Bad = "Kitty!";
才是程式設計師想要的。因此,正確的寫法應該使用一對大括弧來告訴 PHP 我們要的是那一種做法:
${$a[0]) 等於 $Bad = "Kitty!"; ${$a}[1] 等於 $Good[1] = "Kitty!";
--jollen