代碼舉例:
$arr = array('a'=>'one', 'b'=>'two');
$arr2 = array(0=>'one', 1=>'two');
$arr3 = array('a'=>'one', 'b'=>'two');
define('a', 'b'); //定義常量 a
echo $arr3[a]; //解釋爲 $arr['b']
echo $arr2[0]; //輸出 'one'
echo $arr[b]; //會產生警告,但不是錯誤。會解釋爲 $arr['b']
echo $arr[a]; //會產生警告,但不是錯誤。會解釋爲 $arr['a']
?>
分析:
一定要加引號,如果不加引號,則方括號中是一個常量,PHP 可能會在以後定義此常量,不幸的是你的代碼中有同樣的名字。
它能運行,是因爲 PHP 自動將裸字符串(沒有引號的字符串且不對應於任何已知符號)轉換成一個其值爲該裸字符串的正常字符串。
例如,如果沒有常量定義爲 anykey,PHP 將把它替代爲 'anykey' 並使用之。
結果:$arr['a'] 的效率高於 $arr[a];
轉載於:https://www.cnblogs.com/rainman/archive/2009/11/17/1604845.html