PHP數組深入學習

語法


php的數組分析

首先,php的數組是鍵值對,不像python或者有些語言,數組的索引是自增的,php的數組沒有索引,是,這樣就和有些語言中的字典很像。

鍵(key)只能是整數或者字符串,不能是別的數據類型
值(value)可以使任意類型的值,比如數組,整數,浮點數什麼的。


語法

<?php
// 較老版本的寫法
$array = array(
    "a" => "a",
    1 => "b",
);

// PHP5.4以後的寫法
$array = [
    "a" => "apple",
    "b" => "banana",
    3 => "computer",
    "4" => "four",
]
?>

PHP定義一個數組的語法就是示例代碼中的那樣,要注意的就是版本的問題,PHP5.4以後的版本就不用再寫array了,並且用的是方括號
如果數組中多個元素都使用了同樣的鍵名,那麼,只有保留最後一個鍵值對,前面的全部被覆蓋


類型強制轉換

PHP的數組會對KEY的值進行強制的類型轉換:

  • 字符串:包含合法整形的字符串會被轉換爲整形。例如上面示例代碼中的”4”,但是如果是”04”就不會進行強制轉換,因爲04不是一個合法的十進制數。

  • 浮點數:浮點數也會被轉換爲整形,不是四捨五入, 只保留整數部分,小數部分無論大小都會被捨去。

  • NULL:NULL會被轉換爲空字符串,也就是“”。

  • 布爾值:布爾值也會被轉換成整形,true轉換爲1,false當然就是0了。

  • 數組和對象:數組和對象不能用作鍵名。


不定義鍵名的數組

key 爲可選項。如果未指定,PHP 將自動使用之前用過的最大 integer 鍵名加上 1 作爲新的鍵名。

PHP中文文檔中的一段文字。說的是一個數組中,有的元素定義了KEY,有的元素沒有定義KEY,針對沒有定義KEY的元素的處理方式。

一個鍵名都沒有定義的數組,使用索引。(這纔像原汁原味的數組)

$array = array("a", "b", "c", "c");
// 或者
$array = ["a", "b", "c", "d"];

還有這種操作:

$array = array(
    "a",
    "b",
    "c",
    8 => "d",
    "e",
)

注意這個數組的索引,a,b,c的索引都是正常的0, 1, 2,到了d的時候,自定了KEY的值爲8,那麼e的KEY值就是9,KEY如果未指定,PHP將自動使用之前用過的最大integer鍵名加上1作爲新的鍵名, 所以e的KEY值是9

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