歡迎來到小豬圈!

2009-04-25

用字串索引存取陣列要加上引號

  • 陣列的索引是字串型態的話,一定要加上引號,雖然不加引號也可以執行,但 PHP 會先嘗試以常數去解譯,所以可能產生預料外的結果。而如果沒有對應到的常數,再嘗試以字串解譯,並同時會輸出 E_NOTICE 影嚮效能。
  • 整數的索引也可以用字串(加引號)的方式取存,但用整數存取速度比較快。
  • 在建立陣列或其項目時,索引是十進位的數字的話會自動轉成整數。
  • 
    <?php
    define('string_index''unexpected');
    
    $a = array(
      'string_index' => 'string_index',
      'unexpected' => 'unexpected');
    $b = array(
      '-1'  => 0,
      '1'   => 1,
      '02'  => 2,
      '0x3' => 3
    );
    
    
    echo $a['string_index']; // output: string_index
    echo $a[string_index];   // output: unexpected
    
    var_dump($b);
    /* output
    array (
      -1 => int 0
      1 => int 1
      '02' => int 2
      '0x3' => int 3
      )
    */
    ?>
    
    
  1. PHP: Arrays - Manual
  2. 数组非数字键名引号的必要性 | 风雪之隅

No comments:

Post a Comment

Comment Form Message

標籤分類

Blog Archive

Labels

Google Analytics Tracking Code

About Me

My photo
Keelung, R.O.C, Taiwan
一個不學無術、混吃等死的傢伙…