標籤:對象 添加 參考 接受 建立 bar 通過 有序 單行
1.Array 數組
PHP 中的 數組 實際上是一個有序映射。映射是一種把 values 關聯到 keys 的類型。此類型在很多方面做了最佳化,因此可以把它當成真正的數組,或列表(向量),散列表(是映射的一種實現),字典,集合,棧,隊列以及更多可能性。由於數組元素的值也可以是另一個數組,樹形結構和多維陣列也是允許的。
解釋這些結構超出了本手冊的範圍,但對於每種結構至少會提供一個例子。要得到這些結構的更多資訊,建議參考有關此廣闊主題的其它著作。
2.文法:
定義數組 array()
可以用 array() 語言結構來建立一個數組。它接受任意數量用逗號分隔的 鍵(key) => 值(value) 對。
array( key => value
, ...
)
// 鍵(key)可是是一個整數 integer 或字串 string
// 值(value)可以是任意類型的值
最後一個數組單元之後的逗號可以省略。通常用於單行數組定義中,例如常用 array(1, 2) 而不是 array(1, 2, )。對多行數組定義通常保留最後一個逗號,這樣要添加一個新單元時更方便。
自 5.4 起可以使用短數組定義文法,用 [] 替代 array()。
key 可以是 integer 或者 string 。value 可以是任意類型。
3.此外 key 會有如下的強制轉換:
1. 包含有合法整型值的字串會被轉換為整型。例如鍵名 "8" 實際會被儲存為 8。但是 "08" 則不會強制轉換,因為其不是一個合法的十進位數值。
2. 浮點數也會被轉換為整型,意味著其小數部分會被捨去。例如鍵名 8.7 實際會被儲存為 8。
3. 布爾值也會被轉換成整型。即鍵名 true 實際會被儲存為 1 而鍵名 false 會被儲存為 0。
4. Null 會被轉換為空白字串,即鍵名 null 實際會被儲存為 ""。
5. 數組和對象不能被用為鍵名。堅持這麼做會導致警告:Illegal offset type。
如果在數組定義中多個單元都使用了同一個鍵名,則只使用了最後一個,之前的都被覆蓋了。
4.PHP 數組可以同時含有 integer 和 string 類型的鍵名,因為 PHP 實際並不區分索引數組和關聯陣列。
5.key 為可選項。如果未指定,PHP 將自動使用之前用過的最大 integer 鍵名加上 1 作為新的鍵名。
6.數組中可以同時套數組。
7.用方括弧的文法建立/修改
可以通過明示地設定其中的值來修改一個已有數組。
這是通過在方括弧內指定鍵名來給數組賦值實現的。也可以省略鍵名,在這種情況下給變數名加上一對空的方括弧([])。
$arr[key] = value;
$arr[] = value;
// key 可以是 integer 或 string
// value 可以是任意類型的值
如果 $arr 還不存在,將會建立一個,這也是另一種建立數組的方法。不過並不鼓勵這樣做,因為如果 $arr 已經包含有值(例如來自請求變數的 string )則此值會保留而 [] 實際上代表著字串訪問運算子。初始設定變數的最好方式是直接給其賦值。。
要修改某個值,通過其鍵名給該單元賦一個新值。要刪除某索引值對,對其調用 unset() 函數。
8.foreach 控制結構是專門用於數組的。它提供了一個簡單的方法來遍曆數組。
9.為什麼 $foo[bar] 錯了?
應該始終在用字串表示的數組索引上加上引號。例如用 $foo[‘bar‘] 而不是 $foo[bar]。但是為什麼呢?可能在老的指令碼中見過如下文法:
10.
PHP-Manual的學習----【語言參考】----【類型】-----【array數組】