常用的數(shù)據(jù)類型有字符串型、浮點(diǎn)型(單精度浮點(diǎn)型float、雙精度浮點(diǎn)型double)、整形、布爾型
1 其他類型轉(zhuǎn)化為整型
1.1 字符串型轉(zhuǎn)化為整型
1.1.1 如果字符串全部為數(shù)字,則直接全部轉(zhuǎn)換為整型,如果有小數(shù)點(diǎn)則會(huì)去除小數(shù)點(diǎn)后面的內(nèi)容,如 '12' 跟 '12.3' 轉(zhuǎn)換為整型后都為12
1.1.2 如果字符串以字母開頭則不管中間或后面有多少數(shù)字或小數(shù)點(diǎn),轉(zhuǎn)換為整形后都為0。如'ab12.3c'轉(zhuǎn)換為整型后為0
1.1.3 如果以數(shù)字開頭,則會(huì)去掉數(shù)字后面的字符,如果有小數(shù)點(diǎn)則去除小數(shù)點(diǎn)后面的。如 '123.4abc' 、 '123abc' 轉(zhuǎn)換為整形后都為123
1.2 浮點(diǎn)型轉(zhuǎn)化為整型
1.2.1 如果浮點(diǎn)數(shù)含有小數(shù)點(diǎn)則去掉小數(shù)點(diǎn)后面的字符,如果沒有則直接變?yōu)檎?。如:浮點(diǎn)數(shù) 12.6 轉(zhuǎn)換為整形后為12
1.3 布爾型轉(zhuǎn)化為整型
1.3.1 布爾型轉(zhuǎn)換為整型時(shí),true會(huì)轉(zhuǎn)換為 1 false 會(huì)轉(zhuǎn)換為 0其中NULL轉(zhuǎn)換為整型后為0 所以如果要判斷 if(NULL == 0){echo "NULL等于0";} 是會(huì)返回NULL等于0的
2 其他類型轉(zhuǎn)化為字符串型
2.1 整型、浮點(diǎn)型轉(zhuǎn)換為字符串型是直接在數(shù)字上加引號(hào) 如12 12.3 轉(zhuǎn)換為字符串后為 "12" "12.3"
2.2 布爾型轉(zhuǎn)換為字符串是,true會(huì)轉(zhuǎn)換成字符串"1",false 跟NULL轉(zhuǎn)換為字符串結(jié)果為空字符串,不會(huì)有輸出
3 其他類型轉(zhuǎn)化為浮點(diǎn)型
3.1 整型直接轉(zhuǎn)化為浮點(diǎn)型,數(shù)值不變,字符串轉(zhuǎn)換為浮點(diǎn)型跟字符串轉(zhuǎn)換為整型基本上是一樣的,只不過是當(dāng)字符串之間有小數(shù)點(diǎn)時(shí),小數(shù)點(diǎn)會(huì)保存。如 “12.3abc” 轉(zhuǎn)換之后為 12.3 其他形式的是一樣的方法
3.2 布爾型轉(zhuǎn)換為浮點(diǎn)型是,true會(huì)轉(zhuǎn)換成浮點(diǎn)型 1 ,false 跟NULL轉(zhuǎn)換為浮點(diǎn)型結(jié)果為0
4 其他類型轉(zhuǎn)化為布爾型
4.1 空字符串轉(zhuǎn)換為 布爾型為FALSE,非空為TRUE;整型跟浮點(diǎn)型的0轉(zhuǎn)換為布爾型為FALSE,其他為TRUE
4.2 NULL轉(zhuǎn)換為布爾型后結(jié)果為FALSE
PHP的數(shù)據(jù)類型轉(zhuǎn)換屬于強(qiáng)制轉(zhuǎn)換,允許轉(zhuǎn)換的PHP數(shù)據(jù)類型有:
•(int)、(integer):轉(zhuǎn)換成整形
•(float)、(double)、(real):轉(zhuǎn)換成浮點(diǎn)型
•(string):轉(zhuǎn)換成字符串
•(bool)、(boolean):轉(zhuǎn)換成布爾類型
•(array):轉(zhuǎn)換成數(shù)組
•(object):轉(zhuǎn)換成對(duì)象
PHP數(shù)據(jù)類型有三種轉(zhuǎn)換方式:
•在要轉(zhuǎn)換的變量之前加上用括號(hào)括起來的目標(biāo)類型
•使用3個(gè)具體類型的轉(zhuǎn)換函數(shù),intval()、floatval()、strval()
•使用通用類型轉(zhuǎn)換函數(shù)settype(mixed var,string type)
第一種轉(zhuǎn)換方式,(int) (bool) (float) (string) (array) (object),代碼如下:
第二種轉(zhuǎn)換方式,intval() floatval() strval(),代碼如下:
第三種轉(zhuǎn)換方式,settype();代碼如下: