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