----- 最后更新【2018-12-6】-----
簡(jiǎn)介
在PHP程序中,一共支持9種原始數(shù)據(jù)類型墩剖。我們將它們劃分為三類:標(biāo)量數(shù)據(jù)類型咐低、復(fù)合數(shù)據(jù)類型和特殊數(shù)據(jù)類型。
一悉抵、標(biāo)量數(shù)據(jù)類型
標(biāo)量數(shù)據(jù)類型有4種肩狂,包括布爾型、字符串姥饰、整型傻谁、浮點(diǎn)型。
1列粪、boolean
布爾變量是PHP變量中最簡(jiǎn)單的审磁,它保存一個(gè)True或者False值,其中True或者False是PHP的內(nèi)部關(guān)鍵字岂座。
定義一個(gè)布爾型的變量态蒂,只需將True或者False賦值給該變量即可。
2费什、string
字符串是連續(xù)的字符序列钾恢,字符串中的每個(gè)字符只占用一個(gè)字節(jié)。
在PHP中鸳址,定義字符串有4種方式:?jiǎn)我?hào)瘩蚪,雙引號(hào),Heredoc稿黍、Nowdoc疹瘦。
3、integer
整數(shù)數(shù)據(jù)類型只能包含整數(shù)闻察,這些數(shù)據(jù)類型可以是正數(shù)或負(fù)數(shù)拱礁。在32位的操作系統(tǒng)中,有效的范圍是-2 147 483 648~2147 483 647(也就是 -2^31 ~ 2^31 -1)辕漂。
整型值可以使用十進(jìn)制呢灶,十六進(jìn)制,八進(jìn)制或二進(jìn)制表示钉嘹,前面可以加上可選的符號(hào)(- 或者 +)鸯乃。
4、float
浮點(diǎn)型(也叫浮點(diǎn)數(shù) float,雙精度數(shù) double 或?qū)崝?shù) real)缨睡。
浮點(diǎn)數(shù)據(jù)類型可以用來(lái)存儲(chǔ)數(shù)字鸟悴,也可以保存小數(shù)。它提供的精度比整數(shù)大得多奖年。
二细诸、復(fù)合數(shù)據(jù)類型
復(fù)合數(shù)據(jù)類型包括數(shù)組、對(duì)象和可調(diào)用陋守。
5震贵、array
數(shù)組可以是二維、三維或者多維水评,數(shù)組中的各元素可以是string猩系、integer或double,也可以是array中燥。
6寇甸、object
要?jiǎng)?chuàng)建一個(gè)新的對(duì)象 object,使用 new 語(yǔ)句實(shí)例化一個(gè)類
7疗涉、callable
自 PHP 5.4 起可用 callable 類型指定回調(diào)類型 callback拿霉,也就是說(shuō)
callback可以等同于callable 。
三博敬、特殊數(shù)據(jù)類型友浸。
特殊數(shù)據(jù)類型包括資源和無(wú)類型。
8偏窝、resource
資源是一種特殊的變量收恢,保存在外部資源的一個(gè)應(yīng)用,資源是通過(guò)函數(shù)來(lái)進(jìn)行建立的祭往。
9伦意、null
特殊的 NULL 值表示一個(gè)變量沒有值。NULL 類型唯一可能的值就是 NULL硼补,任何變量的初始值都是null驮肉。
如下情況一個(gè)變量會(huì)被認(rèn)為是 NULL:被賦值為 NULL、尚未被賦值(或未定義的變量)已骇、被 unset()离钝。
四、偽類型
偽類型(pseudo-types) 是 PHP 文檔里用于指示參數(shù)可以使用的類型和值褪储。 請(qǐng)注意卵渴,它們不是 PHP 語(yǔ)言里原生類型。
1鲤竹、mixed(混合類型)
mixed 說(shuō)明一個(gè)參數(shù)可以接受多種不同的(但不一定是所有的)類型浪读。
例如 gettype() 可以接受所有的 PHP 類型,str_replace() 可以接受字符串和數(shù)組。
2碘橘、number(數(shù)字類型)
number 說(shuō)明一個(gè)參數(shù)可以是 integer 或者 float互订。
3、callback(回調(diào)類型痘拆,又稱為 callable)
本文檔中在 PHP 5.4 引入 callable 類型之前使用 了 callback 偽類型仰禽。二者含義完全相同。
4错负、array|object(數(shù)組 | 對(duì)象類型)
array|object 意思是參數(shù)既可以是 array 也可以是 object坟瓢。
5、void(無(wú)類型)
void 作為返回類型意味著函數(shù)的返回值是無(wú)用的犹撒。void 作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)。
五粒褒、類型的判斷與轉(zhuǎn)換
1识颊、判斷與轉(zhuǎn)換參考表
類型 | 強(qiáng)制轉(zhuǎn)換 | 轉(zhuǎn)換函數(shù) | 類型判斷 |
---|---|---|---|
通用方法 | settype() | gettype() | |
整型 | (int), (integer) | intval() | is_integer() |
浮點(diǎn)型 | (float), (double), (real) | is_float() | |
布爾型 | (bool), (boolean) | is_bool() | |
字符串 | (string) | strval() | is_string() |
數(shù)組 | (array) | array() | is_array() |
對(duì)象 | (object) | ||
資源 | is_resource() | ||
NULL | (unset) | unset() | is_null() |
二進(jìn)制字符串 | (binary) | ||
數(shù)字或數(shù)字字符串 | is_numeric() | ||
標(biāo)量(integer/float/string/boolean) | is_scalar() |
2、獲取變量的類型
string gettype ( mixed $var ) //獲取變量的類型
注意:
1)不要使用 gettype() 來(lái)測(cè)試某種類型奕坟,因?yàn)槠浞祷氐淖址谖磥?lái)的版本中可能需要改變祥款。此外,由于包含了字符串的比較月杉,它的運(yùn)行也是較慢的刃跛。
2)當(dāng)需要判斷的類型的時(shí)候,建議使用 is_* 函數(shù)代替苛萎。