PHP是弱類型語言,因為在我們申明一個變數的時候,並不需要指明它儲存的資料類型,但是PHP雖然是弱語言,但有時候仍然需要用到類型轉換。
PHP允許轉換的類型如下表:
| 轉換操作符 |
轉換類型 |
舉例 |
| boolean,bool |
轉換成布爾類型 |
(boolean)$num,(boolean)$str |
| string |
轉換成字串 |
(string)$boo,(string)$flo |
| integer,int |
轉換成整形 |
(integer)$boo,(integer)$str |
| float,double |
轉換成浮點型 |
(float)$str |
| array |
轉換成數組 |
(array)$str |
| object |
轉換成對象 |
(object)$str |
PHP中的類型轉換非常簡單,有三種轉換方法:
第一種:
只需要在要轉換的變數之前加上用括弧括起來的類型名稱即可,像下面這樣:
<?php$num1=3.14;$num2=(int)$num1;var_dump($num1);echo "<br/>";var_dump($num2);?>
代碼運行結果:
第二種:
使用3個具體類型的轉換函式,intval()、floatval()、strval()
<?php$a="123.9abc";$int=intval($a); //轉換後數值:123var_dump($int);echo "<br/>";$float=floatval($a); //轉換後數值:123.9var_dump($float);echo "<br/>";$str=strval($float); //轉換後字串:"123.9"var_dump($str);?>
代碼運行結果:
第三種:
使用settype()函數,該函數可以將指定的變數轉換成指定的資料類型,文法如下:
settype(mixed var,string type)
參數var為指定的變數;參數type為指定的資料類型。參數type有7個可選值,即boolean,float,integer,array,null,object和string,如果轉換成功setype()函數返回true,否則返回false。
<?php$num=12.8;$flg=settype($num,"int");var_dump($flg); //輸出bool(true)echo "<br/>";var_dump($num); //輸出int(12)?>
代碼運行結果:
當字串轉換為整型或浮點型時,如果字串是以數字開頭的,就會先把數字部分轉換為整型,在捨去後面的字串;如果數字中含有小數點,則會取到小數前一位。
PHP資料類型轉換執行個體
本執行個體將使用第一種和第三種兩種方法將指定的字串進行類型轉換,比較兩種方法之間的不同,代碼如下:
<?phpheader("content-type:text/html;charset=utf-8"); //設定編碼$num='3.1415926r*r';echo '使用(integer)操作符轉換變數$num類型:'; //使用integer轉換類型echo (integer)$num .'<br/>';echo '輸出變數$num的值:'.$num.'<br/>'; //輸出原始變數$numecho '使用settype函數轉換變數$num類型:';echo settype($num,'integer').'<br/>'; //使用settype函數轉換類型echo '輸出變數$num的值:'.$num; //輸出原始變數$num ?>
代碼運行結果:
從上面的的執行個體可以看到,使用integer操作符能直接輸出轉換後的變數類型,並且原變數不發生任何變化。而是用settype()函數返回的是1,也就是true,原變數就改變了,在實際應用中,可根據自己的需求選擇轉換方式。
下一節,我們講解“怎麼檢測資料類型”。