數(shù)據(jù)類型
1. 什么是類型
不同的數(shù)據(jù)類型其實(shí)就是所存儲(chǔ)數(shù)據(jù)的不同種類。
整型(integer):用來(lái)存儲(chǔ)整數(shù)。
浮點(diǎn)型(float):用來(lái)存儲(chǔ)實(shí)數(shù)。
字符串型(string):用來(lái)存儲(chǔ)字符串。
布爾型(boolean):用來(lái)存儲(chǔ)真(true)或者假(false)。
數(shù)組型(array):用來(lái)存儲(chǔ)一組數(shù)據(jù)。
對(duì)象型(object):用來(lái)存儲(chǔ)一個(gè)類的實(shí)例。
在強(qiáng)類型語(yǔ)言中,例如C語(yǔ)言,一個(gè)變量只能存儲(chǔ)一種類型的數(shù)據(jù),并且這個(gè)變量在使用前必須聲明。PHP作為弱類型語(yǔ)言,給變量賦什么類型的值,這個(gè)變量就是什么類型。
$hello = 100; //由于100為整型,因此$hello變量為整型
2. 整型
整型是數(shù)據(jù)類型中最基本的類型,整型的取值從-2147483648到 2147483648。
例如:3560 //十進(jìn)制整數(shù)
01223 //八進(jìn)制整數(shù)
0x1223 //十六進(jìn)制整數(shù)
3. 浮點(diǎn)型
浮點(diǎn)型表示實(shí)數(shù)。這個(gè)數(shù)據(jù)類型的大小為8個(gè)字節(jié)。取值2.2E-308~1.8E 308。
4. 布爾型
布爾型只有兩個(gè)值,就是true和false。
其他的數(shù)據(jù)類型基本都有布爾類型:
a) 整型,為0時(shí),其布爾屬性為false,為非零值時(shí),其布爾屬性為true。
b) 浮點(diǎn)型,為0.0時(shí),其布爾屬性為false,為非零值時(shí),其布爾屬性為true。
c) 字符串型,為空字符串“”或者零字符串“0”時(shí),其布爾屬性為false,包好除此以外的字符串時(shí)其布爾類型為true。
d) 數(shù)組型,若不含任何元素,其布爾屬性為false,只包含元素,則其布爾屬性為true。
e) 對(duì)象型,資源型,其布爾類型永遠(yuǎn)為true。
f) null型,其布爾屬性永遠(yuǎn)為false。
5. 字符串型
字符串型的數(shù)據(jù)是表示在引號(hào)之間的。雙引號(hào)和單引號(hào)都可以表示字符串,但是兩種表示方法也有一定的區(qū)別。雙引號(hào)是可以表示所有的字符,但是在其中的變量顯示變量的值,而不是變量的變量名,而有些特殊字符加上“/”符號(hào)就可以了;單引號(hào)內(nèi)的字符串是被直接表示出來(lái)的。
實(shí)例:
執(zhí)行結(jié)果
6. 數(shù)組型
數(shù)組是PHP變量的集合,是按照“鍵值”與“值”的對(duì)應(yīng)關(guān)系組織數(shù)據(jù)的。數(shù)組的鍵值既可以是整數(shù),也可以是字符串。另外,數(shù)組不特意表明鍵值得默認(rèn)情況下,數(shù)組元素的鍵值為從零開(kāi)始的整數(shù)。
在PHP中使用list()和array()函數(shù)來(lái)創(chuàng)建數(shù)組,也可以直接進(jìn)行賦值。
實(shí)例:使用array()函數(shù)創(chuàng)建數(shù)組
方式一
執(zhí)行結(jié)果
分析:(1)程序中”=>”為數(shù)組賦值,數(shù)組的下標(biāo)只是存儲(chǔ)的標(biāo)識(shí),沒(méi)有任何意義,數(shù)組元素的排列以加入的先后順序?yàn)闇?zhǔn)。
(2)本程序采用for循環(huán)輸出數(shù)組,其中count函數(shù)返回?cái)?shù)組的個(gè)數(shù),echo函數(shù)返回當(dāng)前數(shù)組指針的索引值對(duì)。
方式二
執(zhí)行結(jié)果
方式三
執(zhí)行結(jié)果
7. 對(duì)象型
對(duì)象就是類的實(shí)例。當(dāng)一個(gè)類被實(shí)例化以后,這個(gè)被生成的對(duì)象被傳遞給一個(gè)變量。這個(gè)變量就是對(duì)象型變量。對(duì)象型變量屬于資源型變量。
8. null型
null型是僅擁有null這個(gè)值得類型。這個(gè)類型用來(lái)標(biāo)記一個(gè)變量為空。一個(gè)空字符串與null是不同的。在數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)會(huì)把空字符串和null區(qū)分處理。null型在布爾判斷時(shí)永遠(yuǎn)為false。很多情況下,在聲明一個(gè)變量的時(shí)候可以直接先賦值為null型,如$value = null;
9. 資源類型
資源類型是十分特殊的數(shù)據(jù)類型。它表示PHP的擴(kuò)展資源,可以是一個(gè)打開(kāi)的文件,也可以是一個(gè)數(shù)據(jù)庫(kù)連接,甚至可以是其他數(shù)據(jù)類型。
10.?dāng)?shù)據(jù)類型之間的相互轉(zhuǎn)換
a) 自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換
這種轉(zhuǎn)換方式最常用,直接輸入數(shù)據(jù)的轉(zhuǎn)換類型即可。float型轉(zhuǎn)換為整數(shù)int型,小數(shù)點(diǎn)后面的數(shù)將被舍棄。如果float數(shù)值超過(guò)了整數(shù)的取值范圍,則結(jié)果可能是0或者整數(shù)的最小負(fù)數(shù)。
實(shí)例:
執(zhí)行結(jié)果
b) 強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
在PHP中,可以使用settype函數(shù)強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型。語(yǔ)法:
bool settype(var string type)
注:type的可能值不能包含資源類型數(shù)據(jù)。
執(zhí)行結(jié)果
二、標(biāo)量類型的聲明
默認(rèn)情況下,所有PHP文件都處于弱類型校驗(yàn)?zāi)J?。PHP7加了標(biāo)量類型聲明的特性。
語(yǔ)法:declare(strict_types=1);
通過(guò)strict_types的值(1或0)來(lái)表示校驗(yàn)?zāi)J剑?表示嚴(yán)格類型校驗(yàn)?zāi)J?,作用于函?shù)調(diào)用和返回語(yǔ)句;0表示強(qiáng)制類型校驗(yàn)?zāi)J健?/p>
注:可以聲明標(biāo)量類型的參數(shù)類型包括:int、float、bool、string、interface、array和callable。
1. 強(qiáng)制模式
2. 嚴(yán)格模式
聯(lián)系客服