網(wǎng)站建設中PHP是一種弱類(lèi)型語(yǔ)言,但是在開(kāi)發(fā)中還是需要用到類(lèi)型轉換。PHP中的類(lèi)型轉換與C語(yǔ)言一樣,非常簡(jiǎn)單,只需要在變量前面加上用括號括起來(lái)的類(lèi)型名稱(chēng)即可。
除了使用強制轉換外,還可以使用settype()函數轉換數據類(lèi)型。該函數包含參數值,第一個(gè)值為變量名,第二個(gè)參數值為要轉換的類(lèi)型字符串,包括boolean、float、integer、string、null、array、object。settype()函數返回值為布爾值,如果數據類(lèi)型轉換成功,則返回true,否則返回false。例如,輸入下面代碼<?php$num = '3.1415926abc'; //聲明字符串變量echo (integer)$num; //把變量強制轉換為整型echo '<p>';echo $num; //輸出原始變量值echo '<p>';echo settype($num, 'float'); //輸出把變量轉換為浮點(diǎn)數的結果echo '<p>';echo $num; //被轉換為浮點(diǎn)數后的變量值?>
轉換為布爾值
要明確地將一個(gè)值轉換成boolean,應該使用(bool)或者(boolean)來(lái)強制轉換。但是很多情況下不需要用強制轉換,因為當運算符、函數或者流程控制結構需要一個(gè)boolean參數時(shí),該值會(huì )被自動(dòng)轉換。在PHP中,并不是false才是假的,在某些特殊情況下,下面這些boolean值也被認為是假的。
?0:整型值零。
?0.0:浮點(diǎn)型值零。
?"0":字符串值零。
?"":空白字符串。
?空數組:不包括任何元素的數組。
?空對象:不包括任何成員變量的對象(僅PHP 4.0適用)。
?特殊類(lèi)型NULL(包括尚未設定的變量)。
?從沒(méi)有任何標記的XML文檔生成的Sim-pleXML對象。
其他所有其他值都被認為是true(包括任何資源)。注意,-1和其他非零值(不論正負)一樣,被認為是真。<?phpvar_dump((bool) ""); //bool(false)var_dump((bool) 1); //bool(true)var_dump((bool) "1"); //bool(true)var_dump((bool) array()); //bool(false)var_dump((bool) "false"); //bool(true)?>
2. 轉換為整型要明確地將一個(gè)值轉換為整型,可以使用(int)或(integer)強制轉換。不過(guò)大多數情況下都不需要強制轉換,因為當運算符、函數或流程控制需要一個(gè)整型參數時(shí),值會(huì )自動(dòng)轉換。還可以通過(guò)函數intval()將一個(gè)值轉換成整型。當從布爾值轉換為整數值時(shí),false將被轉換為0,true將被轉換為1。當從浮點(diǎn)數轉換成整數時(shí),將向零取整。如果浮點(diǎn)數超出了整數范圍,則結果不確定,因為沒(méi)有足夠的精度把浮點(diǎn)數轉換為確切的整數結果,在此情況下沒(méi)有警告,甚至沒(méi)有任何通知。注意:不要將未知的分數強制轉換為整數型,這樣會(huì )導致不可預料的結果。如:<?phpecho (int) ( (0.1+0.7) * 10 ); //顯示7?>
3. 轉換為字符串一個(gè)值可以通過(guò)在其前面加上(string)或用str-val()函數來(lái)轉變成字符串。在一個(gè)需要字符串的表達式中,字符串會(huì )自動(dòng)轉變。例如,在使用函數echo()或者print()時(shí),或在一個(gè)變量和一個(gè)字符串進(jìn)行比較時(shí),就會(huì )發(fā)生這種轉變類(lèi)型。
?一個(gè)布爾型的true值被轉換成字符串"1",而布爾型的false值將被轉換成""(空的字符串)。這種轉變可以在布爾值和字符串之間隨意進(jìn)行。
?一個(gè)整數或浮點(diǎn)數將被轉變?yōu)閿底值淖置鏄邮降淖址òǜ↑c(diǎn)數中的指數部分),使用指數計數法的浮點(diǎn)數(16.1E+6)也可轉變。
?數組轉換成字符串"Array",因此,echo()和print()無(wú)法顯示出數組的值。如果顯示一個(gè)數組值,可以用echo $arr['foo']這種結構。
?資源總會(huì )被轉變成"Resource id #1"這種結構的字符串,其中的1是PHP分配給該資源的獨特數字。
?NULL總是被轉變成空的字符串。
當前文章標題:類(lèi)型轉換
當前URL:http://amzcoolest.com/news/wzzz/3235.html
上一篇:特殊類(lèi)型
下一篇:檢測數據類(lèi)型