这个报错不是什么大问题,只是不良习惯造成的提示。关联数组应该使用如$_GET["name"]或者$_GET['name']这样的表示方法,虽然php会在无法找到$_GET[name]时会自动将其识别为$_GET中下标为“name”的数组元素,但是会提示你上面的Notice信息。因此,正确的做法是为关联数组加上单引或双引号。
下面是摘自PHP中文手册的解释:
为什么 $foo[bar] 错了?
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?可能在老的脚本中见过如下语法:
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>
这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而
PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。