PHP:數組中的引號問題

代碼舉例:

代碼
<?php
  
$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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章