自 5.4 起可使用短數組定義語法,用 [] 替代 array()。 php
<?php 數組
?> 函數
key 能夠是 integer 或者 string。value 能夠是任意類型。 spa
此外 key 會有以下的強制轉換: .net
若是在數組定義中多個單元都使用了同一個鍵名,則只使用了最後一個,以前的都被覆蓋了。 code
方括號和花括號能夠互換使用來訪問數組單元(例如 $array[42] 和 $array{42})要修改某個值,經過其鍵名給該單元賦一個新值。要刪除某鍵值對,對其調用 unset() 函數。 對象
若是給出方括號但沒有指定鍵名,則取當前最大整數索引值,新的鍵名將是該值加上 1(可是最小爲 0)。若是當前尚未整數索引,則鍵名將爲 0。 索引
注意這裏所使用的最大整數鍵名不必定當前就在數組中。它只要在上次數組從新生成索引後曾經存在過就好了。如下面的例子來講明: 字符串
以上例程會輸出: get
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( ) Array ( [5] => 6 ) Array ( [0] => 6 [1] => 7 )
應該始終在用字符串表示的數組索引上加上引號。例如用 $foo['bar'] 而不是 $foo[bar]。可是爲何呢?可能在老的腳本中見過以下語法:
這樣是錯的,但能夠正常運行。那麼爲何錯了呢?緣由是此代碼中有一個未定義的常量(bar)而不是字符串('bar'-注意引號),而 PHP 可能會在之後定義此常量,不幸的是你的代碼中有一樣的名字。它能運行,是由於 PHP 自動將裸字符串(沒有引號的字符串且不對應於任何已知符號)轉換成一個其值爲該裸字符串的正常字符串。例如,若是沒有常量定義爲 bar,PHP 將把它替代爲 'bar' 並使用之。
下標從 1 開始的數組
以上例程會輸出:
Array ( [1] => 'January' [2] => 'February' [3] => 'March' )