要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要$$a 作为一个变量并取出该变量中索引为 [1] 的值。
看以下情况 当 echo "$arr[3][0]"; 时,应为echo 是一个php语句只解析简单的int,string,会把$arr[3][0]当成字符串处理,而双引号会解析变量$arr[3],最后就变成 echo $arr[3]的值和字符串[0]的拼接,$arr[3]是一个结构数组,所以出现notice。
<?php
$arr =array(1,2,3,array(4,5),6);
echo $arr[3][0];//4
echo "<br />";
echo "$arr[3][0]";//Notice: Array to string conversion in D:\wamp\www\test.php on line 5 Array[0]
echo "<br />";
echo " '$arr[3][0]' ";//Notice: Array to string conversion in D:\wamp\www\test.php on line 5 Array[0]
echo "<br />";
echo " {$arr[3][0]} ";//4
?>