*即使大多数情况下都可以使用, *也不能认为是可以的 。
基本上,当PHP看到以下内容时:
echo $array[key];
它将搜索一个由定义的常量, define
称为 key
-,如果没有,则取该
'key'值。
但是,如果您的代码前面有这样的内容:
define('key', 'glop');不会
echo $array['key'];
不再; 相反,它将使用 常量 的值key
-并且您的代码将与:
echo $array['glop'];
最后,至少有两个原因,不把引号引起来是不好的:
- 有 可能无法实现您的期望 -这是非常糟糕的
- 今天可能会…
- 但是下周/月/年呢?
- 也许有一天,您将
define
使用 错误的 名称常量;-)
- 这对性能不利:
- 它必须在使用之前搜索常量
'key'
- 并且,如评论中所述,它会生成通知 (即使您禁用
error_reporting
和display_errors
,通知/警告/错误仍然会生成,即使以后丢弃也是如此)
- 它必须在使用之前搜索常量
所以:在这一点上,你不应该听那个家伙的话:他错了: 这很重要 。


![在PHP中使用array [key]可以吗? 在PHP中使用array [key]可以吗?](http://www.mshxw.com/aiimages/31/443042.png)
