PHP教學:使用函數計算BMI值,說明echo與print用法差異

PHP程式語言內置了許多基本而實用的函數,在此以BMI值計算為例,介紹round及pow的用法,進而補充echo及print雖然同樣都可以列印顯示,但是兩者之間有何差異。

一、PHP計算BMI

範例和先前文章影片一樣是示範BMI的算法,利用簡單的變數設定和PHP程式碼,依照身高體重計算出BMI值。注意到這裡是用數學公式直接進行計算,得出來的BMI值也是原始數值呈現,後面帶有除不盡的小數。

一張含有 文字, 螢幕擷取畫面, 字型, 數字 的圖片

自動產生的描述

二、round四捨五入

上個步驟預覽效果看到BMI值有除不盡的小數,在網頁上顯示效果不太理想,其實跟Excel一樣,PHP程式碼也有內建函數,而且在處理小數位數時可以使用和Excel完全相同的round函數,這裡的程式碼除了要計算的數值之外沒有使用任何其他參數,得到結果是四捨五入之後的整數。

另外注意到這裡還用到了在程式設計常用的技巧:同一變數進行多次計算。例如「身高」這個變數原本是180公分,將它除以100得到公式所需數值,在計算BMI值時算式較為簡潔,如此在右側預覽畫面便是「身高:1.8」。雖然公尺和公分雖然都很常用,不至於在閱讀理解上有困擾,可是身高通常以公分為單位,顯示「1.8」不是那麼適合,這是在設計網頁時須多加注意的細節。

一張含有 文字, 螢幕擷取畫面, 字型, 數字 的圖片

自動產生的描述

三、pow計算次方

繼續優化程式以改善上個步驟的情形。很多基本函數都是共通的,先前PHP使用內建的round函數,這裡再加入pow函數來進行次方的計算:「pow($身高/100,2),作用是將身高除以100再取2次方,也就是平方,Excel的power函數有同樣功能,只是名稱稍微有點不同。

一張含有 文字, 螢幕擷取畫面, 字型, 數字 的圖片

自動產生的描述

四、print命令代替echo

先前程式是使用echo命令,其實PHP和Python一樣都有「print」列印命令,從這個步驟的程式範例可以看到能用print完全代替echo。

一張含有 文字, 螢幕擷取畫面, 字型, 數字 的圖片

自動產生的描述

五、逗號連接字串

上個步驟看到echo和print兩者之間可以互換,可是兩個不同命令還是會有些差異,例如這裡echo語法是以逗號同時連接多個文字與變數。

PHP教學:使用函數計算BMI值,說明echo與print用法差異 5

六、echo與print差異

上個步驟的程式結構如果將echo替換成print,右側預覽結果會提示錯誤,PHP沒有預期在print語句會看到逗點,這便是不同之處,echo可以使用逗號,print不行。

PHP教學:使用函數計算BMI值,說明echo與print用法差異 7

七、print函數傳回值

echo可以歸類為命令句,和print函數有著本質上差異,因為函數通常會有傳回值的特性。在此做個簡單測試,將x變數設定為print函數的計算結果,再將這個x變數用print列印出來,從預覽效果可以看到雖然將print作為變數的設定值:「$X = print(‘BMI值:’.$BMI);」,它仍會在網頁上執行列印功能,如果是單純print傳回值的結果:「print $X;」,顯示的「1」應該是代表執行成功的意思。

一張含有 文字, 螢幕擷取畫面, 字型, 行 的圖片

自動產生的描述

PHP、Excel、Python

除了這篇文章所介紹的round和pow函數,PHP還有許多其他函數可以使用,不過正如這篇文章所介紹的,有些函數所執行功能是可以用純粹程式計算的方式代替,因此在實務上不一定要瞭解所有函數,而且基本常用的函數有共通性,如同文章內所提到的,在Excel和Python也會有相同功能的函數,名稱完全相同或者類似,因此真的有需要時也不會太難查找使用。

另外以echo和print做比較,雖然兩者主要功能相同,可是在多個對象顯示的場合應該echo比較方便,print函數特別的是有傳回值,但這個功能通常用到的機會不多,卻有可能會佔據記憶體空間,所以PHP大多使用echo,不像Python都是用print。

總結而言,接觸一門新的程式語言如果能和原來既有的語言以不同面向比較,相信會有更具體認識,也較能融會貫通。

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

YouTube video

最新文章: