PHP教學:資料類型轉換,float、int、string、bool

PHP資料類型是基本應該要熟悉的概念,本文介紹如何將float浮點小數轉換為int整數,var_dump函數評估資料型態,string和settype轉換為文字,補充is_int、is_bool、is_float等判斷函數。

一、round函數

在此沿用先前文章的BMI值計算範例,使用「pow」和「round」兩個函數輔助計算。右側的預覽效果可以看到本來是帶有除不盡的小數,經過round函數四捨五入之後變成整數。

D27b11

二、(int)整數轉換

除了函數之外,在此介紹利用資料類型轉換的方法去除小數。例如這裡是在變數前面加一個括號,括號中是想要轉換的資料類型,「int」代表的是integer,也就是要轉換成整數類型的資料。同樣從右邊預覽資料可以看到是直接將原來小數的部分去掉,等於是無條件捨去法,所以得到「24」。

D27b21

三、var_dump函數

上個步驟既然用到了int函數進行資料類型轉換,很顯然原本並非int資料類型,可以使用「var_dump」這個函數,它在PHP作用是可以去瞭解括號裡面各個參數的資料類型以及資料值,因此可以看到這裡是「$BMI1」跟「$BMI2」兩參數,函數評估結果第一個是float浮點類型資料,也就是帶有小數的數值,第二個int便是先前有提到的整數類型的數值。

D27b31

四、float類型整數

瞭解了 var_dump函數用法,再試看看前面有用過的round函數。可以看到經過round函數四捨五入之後,雖然可以得到整數,可是以資料類型而言它仍然是浮點類型資料,而經過int函數無條件捨去法所得到的整數,當然它就是一個整數資料類型,因此雖然「25」和「24」都是整數,兩者卻是不同資料類型,在有些時候程式設計和執行時必須特別注意。

D27b41

五、PHP變數特性

瞭解了如何評估資料類型之後,進一步介紹PHP程式語言的特性,它在使用變數的時候不需要像VBA一般建議方式先宣告變數類型,而是直接設定變數名稱及變數值,PHP會自動依照變數值設定適合的資料類型。例如這裡的「$身高=180」和「$體重=80」透過var_dump函數評估,即使沒有特別宣告說明是整數,PHP也會將它設定為是int整數。

D27b51

六、settype函數

雖然自動設定資料類型很方便,有些時候還是會希望去設定或者改變預先設定的資料類型Z,在此介紹兩種方法。第一個是直接在變數前面加上想要轉換的資料類型,例如變數「$身高2」是在變數「$身高」前面加上括號「(string)」,從執行結果可以看到「身高」仍然保留原來的整數類型,而「身高2」已經是三個長度的文字類型。

另外還有一個是 「settype」函數。它兩個參數,第一個參數是想要轉換資料類型的變數,第二個參數是想要轉換的資料類型。例如這裡的「($體重, ‘string’)」會將變數「$體重」轉換成文字資料類型。注意到函數通常都有傳回值,PHP特別是一般不預期有傳回值的函數也是會有,例如PHP的print函數是有傳回值,這裡將settype函數計算的結果設定為「$體重2」的變數值。從右側預覽的效果可以知道,它會把「$體重」變數轉換為文字資料,其字串長度為「2」。另外變數「$體重2」的資料類型是布林值,它的值是true,意思是函數執行成功。

D27b61

七、is_ int與is_bool

對於PHP資料類型的機制有基本瞭解之後,由於資料類型的判斷在有些程式設計案例會有關鍵作用,在此補充PHP關於判斷資料類型的兩個函數,首先:「is_ int」及「is_bool」,這兩個函數的作用從字面上就可以瞭解分別為判斷是否為整數類型和真假類型,以「$身高」這個變數進行測試,在右側預覽效果是「11」,代表邏輯值1(真)的意思,確實是整數類型的資料,傳回「1」,接著再去判斷是否為真,當然也是「1」。

同樣模式如果去判斷「$體重」和「$BMI」是否為浮點類型資料,執行結果只有一個「1」,因為只有「BMI」才是帶有小數的浮點類型資料。

D27b71

基本與進階資料類型

這篇文章是以整數、小數、文字、真假值這四種主要資料類型介紹,其實在PHP裡面還有比較複雜進階的其它資料類型,當然也會有相對應的資料類型評估和轉換需求工具。在經過這篇文章瞭解了基本的概念原理之後,日後在實際範例中遇到其它資料類型的處理,相信也會比較容易掌握上手。

每天學習,每天充電:php文章合集

YouTube video

最新文章: