PHP是弱型別語言,因為在我們申明一個變數的時候,並不需要指明它保存的資料型別,但是PHP雖然是弱語言,但有時候還是需要用到型別轉換。
PHP允許轉換的類型如下表:
轉換運算子 | 轉換型別 | 範例 |
boolean,bool | 轉換成布林類型 | (boolean)$num,(boolean)$str |
string | 轉換成字串 | (string)$boo,(string)$flo |
integer,int | ##轉換成整形(integer)$boo,(integer)$str | |
##轉換成浮點型 | #(float)$str | |
轉換成陣列 | (array)$str | |
轉換成物件 | (object)$str |
第一種:
只需要在要轉換的變數之前加上用括號括起來的型別名稱即可,像下面這樣:
<?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); //转换后数值:123 var_dump($int); echo "<br/>"; $float=floatval($a); //转换后数值:123.9 var_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資料型別轉換實例本實例將使用第一種和第三種兩種方法將指定的字串進行型別轉換,比較兩種方法之間的不同,程式碼如下:
<?php header("content-type:text/html;charset=utf-8"); //设置编码 $num='3.1415926r*r'; echo '使用(integer)操作符转换变量$num类型:'; //使用integer转换类型 echo (integer)$num .'<br/>'; echo '输出变量$num的值:'.$num.'<br/>'; //输出原始变量$num echo '使用settype函数转换变量$num类型:'; echo settype($num,'integer').'<br/>'; //使用settype函数转换类型 echo '输出变量$num的值:'.$num; //输出原始变量$num ?>
程式碼執行結果:
#從上面的的實例可以看到,使用integer操作符能直接輸出轉換後的變數類型,且原變數不發生任何變化。而是用settype()函數回傳的是1,也就是true,原變數就改變了,在實際應用中,可依自己的需求選擇轉換方式。
下一節,我們講解「
怎麼偵測資料型別以上是php資料型別轉換實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!