$arr[x]错误
 $arr['x']和 $arr["x"]一样

解决方案 »

  1.   

    $arr[x]; 并不错误 你可以自己试试另外2个好像也不完全一样
      

  2.   

    ......
    你把错误全开
    这样会有一个undefined const
      

  3.   

    <?php
    $a=array("a"=>"a","b"=>"b","c"=>"c","d"=>"d");
    echo $a[a],$a['a'],$a["a"];//return aaa
    ?>
    我做的测试值是一样的,表明结果一样。
    一家之言!
      

  4.   

    $a[a]是不规范的写法!
    结果一样,是因为由于a未定义,php把a当前值为"a"的常量,
    变成$a["a"],但这样会导致一个神仙说的错误!
      

  5.   

    $a[a]是会报错的,如果有a名的常量就更错了。
    $a['a']和$a["a"]是完全一样的,
    但是$a['a$a']和$a["a$a"]应该就有区别了
      

  6.   

    那我把问题升级一下 
    $arr[$x];
    $arr['$x'];
    $arr["$x"];
    这3个的区别
      

  7.   

    第一个不用说了吧?PHP会查找变量$x的值作为索引名称。至于第二个和第三个,你重要要理解PHP语法的一个最基本问题:单引号和双引号的区别。
    PHP不会解释单引号内的任何东西(当然,单引号本身除外,要用\开头),只把它作纯字符串处理。而PHP却会对双引号内的变量和转义字符进行解释。
    以上这个基本常识可以在PHP手册的第十一章(类型)里的《字符串》那节找到。那么,结果就很清楚了。第二个变量,PHP解会查找$arr里索引名为一个美元符号加一个x,也就是索引名为“$x”的单元。
    第三个,PHP将会解释双引号内的变量,也就是说,其值和第一个相同。
    关于数据索引名有关的东西,可以在PHP手册第十一章的《数组》小节里找到。
      

  8.   

    只有一个a是非法字符因为PHP变量前面必须加$而常量必须加单引号或双引号