php 中的陣列型別
key 可以是integer 或者string。value 可以是任意型別。
此外 key 會有如下的強制轉換:
- 包含有合法整型值的字串會被轉換為整型。例如鍵名"8" 實際會被儲存為8。但是 "08" 則不會強制轉換,因為其不是一個合法的十進位制數值。
- 浮點數也會被轉換為整型,意味著其小數部分會被捨去。例如鍵名8.7 實際會被儲存為8。
- 布林值也會被轉換成整型。即鍵名true 實際會被儲存為1 而鍵名 false 會被儲存為 0。
- Null 會被轉換為空字串,即鍵名null 實際會被儲存為""。
- 陣列和物件不能被用為鍵名。堅持這麼做會導致警告:Illegal offset type。
key 為可選項。如果未指定,PHP 將自動使用之前用過的最大integer
<?php
$array = array(
"a",
"b",
6 => "c",
"d",
);
var_dump($array);
?>
array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [6]=> string(1) "c" [7]=> string(1) "d" }可以看到最後一個值 "d" 被自動賦予了鍵名 7。這是由於之前最大的整數鍵名是 6