PHP的數(shù)據(jù)類型
網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。
· 標(biāo)量類型: int, float, string, bool
· 復(fù)合類型: array, object
· 特殊類型: null, resouce
· 十進(jìn)制寫(xiě)法:123:
$n1 = 123;
· 八進(jìn)制寫(xiě)法: 0123
$n2 = 0123;
· 十六進(jìn)制寫(xiě)法: 0x123
$n3 = 0x123;
先學(xué)習(xí)幾個(gè)單詞:
dec: 十進(jìn)制
bin:二進(jìn)制
oct:八進(jìn)制
hex:十六進(jìn)制
· 十進(jìn)制轉(zhuǎn)二進(jìn)制decbin(),除2取余倒著寫(xiě)
$v1 = decbin(123); //注意:參數(shù)必須是10進(jìn)制數(shù)字,轉(zhuǎn)換后的結(jié)果必然是二進(jìn)制字符串。
我們也可以通過(guò)手工的方式來(lái)完成10進(jìn)制轉(zhuǎn)2進(jìn)制的完整過(guò)程。
基本做法是:將10進(jìn)制數(shù)字除以2,并取得余數(shù),如果除得的商不為0,則繼續(xù)除以2,并繼續(xù)去的余數(shù),直到商為0。然后將所有取得的余數(shù),按“倒序?qū)懗觥保褪菍?duì)應(yīng)的2進(jìn)制數(shù)字:
· 十進(jìn)制轉(zhuǎn)八進(jìn)制decoct(),除8取余倒著寫(xiě)
使用php系統(tǒng)函數(shù):
$r1 = decoct(十進(jìn)制數(shù)字); //結(jié)果是一個(gè)8進(jìn)制數(shù)字字符串。
我們也可以通過(guò)手工的方式來(lái)完成10進(jìn)制轉(zhuǎn)8進(jìn)制的完整過(guò)程。
基本做法是:將10進(jìn)制數(shù)字除以8,并取得余數(shù),如果除得的商不為0,則繼續(xù)除以8,并繼續(xù)去的余數(shù),直到商為0。然后將所有取得的余數(shù),按“倒序?qū)懗觥?,就是?duì)應(yīng)的8進(jìn)制數(shù)字:
· 十進(jìn)制轉(zhuǎn)十六進(jìn)制dechex(),除16取余倒著寫(xiě)
16進(jìn)制的數(shù)字包括如下(從0開(kāi)始):
0 1 2 3 4 5 6 7 8 9 A B C D E F
對(duì)應(yīng)10進(jìn)制其實(shí)是:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
系統(tǒng)函是:dechex(十進(jìn)制數(shù)字),結(jié)果是16進(jìn)制數(shù)字字符串。
手工運(yùn)算:
基本做法是:將10進(jìn)制數(shù)字除以16,并取得余數(shù),如果除得的商不為0,則繼續(xù)除以16,并繼續(xù)去的余數(shù),直到商為0。然后將所有取得的余數(shù),按“倒序?qū)懗觥?,就是?duì)應(yīng)的16進(jìn)制數(shù)字:
· 二進(jìn)制轉(zhuǎn)十進(jìn)制bindec(),每位數(shù)值乘以2的權(quán)值然后相加
先理解一個(gè)“權(quán)值”概念:
就是某位數(shù)字上的該數(shù)字所代表的數(shù)的大小。比如:
10進(jìn)制數(shù)字1234,其代表:1*10 3+2*102 + 3*101 +4*100 = 1000+ 200 + 30 + 4;
這里,10 3, 102,101,等等,就稱為權(quán)值。
二進(jìn)制轉(zhuǎn)10進(jìn)制,就是將每位數(shù)值乘以對(duì)應(yīng)位上的權(quán)值,然后相加得到的結(jié)果。
用系統(tǒng)函數(shù)是:
$v1 = bindec(“二進(jìn)制數(shù)字字符串”);//得到的結(jié)果是10進(jìn)制數(shù)字
結(jié)果:s1 = 86 , 其類型為:integer
手工轉(zhuǎn)換:
二進(jìn)制數(shù)字的權(quán)值,從右到左,分別是:
20, 21, 22, 23, 24, 25,.....
即分別是(10進(jìn)制大?。?/p>
1, 2, 4, 8, 16,32
手工計(jì)算:
1010110
=1*26 + 0*XX + 1*24 + 0*XX + 1*22 + 1*21 + 0 //說(shuō)明,其中XX表示無(wú)所謂的數(shù)字值
=64 + 0 + 16 + 0 + 4 + 2 + 0
=86
· 八進(jìn)制轉(zhuǎn)十進(jìn)制octdec() ,每位數(shù)值乘以8的權(quán)值然后相加
用系統(tǒng)函數(shù)是:
$v1 = octdec(“8進(jìn)制數(shù)字字符串”);//得到的結(jié)果是10進(jìn)制數(shù)字
結(jié)果:s1 = 668,其類型為:integer
手工算法統(tǒng)2進(jìn)制轉(zhuǎn)換為10進(jìn)制,略。
· 十六進(jìn)制轉(zhuǎn)十進(jìn)制hexdec() ,每位數(shù)值乘以16的權(quán)值然后相加
用系統(tǒng)函數(shù)是:
$v1 = hexdec(“16進(jìn)制數(shù)字字符串”);//得到的結(jié)果是10進(jìn)制數(shù)字
結(jié)果:s1 = 4779,其類型為:integer
· 注意:十進(jìn)制轉(zhuǎn)為其他進(jìn)制結(jié)果是字符串,其他進(jìn)制轉(zhuǎn)為十進(jìn)制要求給定數(shù)據(jù)是字符串形式
思考:
$v1 = bindec(123);//理解過(guò)程:bindec(“123”) =>bindec(“1”)=>1
$v2 = bindec(0123);//理解:0123是8進(jìn)制數(shù)字,其10進(jìn)制值為:83,再當(dāng)作二進(jìn)制字符串就是“83”,結(jié)果就只能是0
$v3 = bindec(“0123”);//理解:因?yàn)橹苯泳褪亲址?,就?dāng)二進(jìn)制字符串用,結(jié)果是1
$v4 = octdec(0123); //理解:0123是8進(jìn)制數(shù)字,其10進(jìn)制值為:83,再當(dāng)作8進(jìn)制字符串就是“83”,但8進(jìn)制中沒(méi)有“8”這個(gè)數(shù)字,就只識(shí)別出一個(gè)“3”這個(gè)數(shù)字
以下代碼測(cè)試:
$v1 = 1.234; //帶小數(shù)點(diǎn),,就是浮點(diǎn)類型
$v2 = 1.234E3;//含義是:1.234乘以10的3次方,即1234,帶E的形式就是浮點(diǎn)數(shù)
$v3 = 1234E3;//結(jié)果值是1234000,但也是一個(gè)浮點(diǎn)數(shù)。
關(guān)于浮點(diǎn)數(shù)的細(xì)節(jié)知識(shí):
十進(jìn)制小數(shù)轉(zhuǎn)二進(jìn)制小數(shù)的做法:乘2并順序取整數(shù)部分
浮點(diǎn)數(shù)不應(yīng)該直接進(jìn)行大小比較。因?yàn)楦↑c(diǎn)數(shù)在系統(tǒng)內(nèi)部(CPU級(jí)別),很可能都是不精確表達(dá)。要想進(jìn)行比較,我們只能考慮自己應(yīng)用中的精度要求的基礎(chǔ)上,將其轉(zhuǎn)換為整數(shù)進(jìn)行比較。
通常的做法是:乘以10的精度位數(shù)數(shù)次方,比如精度要求3位有效數(shù)字,則乘以10的3次方。
當(dāng)整數(shù)運(yùn)算的結(jié)果超出整數(shù)的范圍后,會(huì)自動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù)。
整數(shù)的范圍在32位操作系統(tǒng)下,大約正負(fù)20多億。
字符串類型 String
JS中雖然有2種字符串表達(dá)形式,但也應(yīng)該理解為是一種字符串:
var str1 = '單引號(hào)字符串';
var str2 = "雙引號(hào)字符串";
但在php中,單引號(hào)與雙引號(hào)字符串是有不同細(xì)節(jié)含義的字符串:
PHP中有4種字符串形式:
單引號(hào)字符串:
雙引號(hào)字符串:
nowdoc(單引號(hào))定界符字符串:
heredoc(雙引號(hào))定界符字符串:
布爾類型:bool , boolean
用于標(biāo)識(shí)某種只有兩個(gè)狀態(tài)值的數(shù)據(jù):true , false
在應(yīng)用中,我們常常會(huì)(需要)直接將一個(gè)數(shù)據(jù)(可能是各種其它類型)當(dāng)作一個(gè)布爾值來(lái)進(jìn)行判斷。
那么此時(shí)其實(shí)發(fā)生的是:會(huì)將數(shù)據(jù)隱含轉(zhuǎn)換為布爾值。
最常見(jiàn)的語(yǔ)法形式是:
if(某數(shù)據(jù)/變量) {
...........
}
那么,在php中,其它各種數(shù)據(jù),隱含轉(zhuǎn)換為布爾值的時(shí)候,會(huì)當(dāng)作false的有:0 , 0.0 ,null , "", "" , "0" , array() , 及未定義的變量。其它數(shù)據(jù)當(dāng)作true!
當(dāng)前文章:PHP的數(shù)據(jù)類型
網(wǎng)站鏈接:http://aaarwkj.com/article26/igepcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)