當我們把表格資料填好,按出【答案】,就要把表格裡面的數值傳到test.php做處理
處理好之後,就要把答案印出來
如何承接表格裡面的數值呢?
就是用之前所說過的變數,而表格的變數是有固定格式的,就是$_POST[表格的名稱]
前篇在制定表格,設定輸入類型的時候,都一定要給它一個名稱(name),以做判別
在這裡就需要用到這個名稱,之前有用到T1、T2、D1
所以,承接這些數值的變數就是$_POST['T1']、$_POST['T2']、$_POST['D1']
表格填了什麼樣的數值,在這些變數就是怎樣的數值
當表格填了1+2
在test.php就直接$_POST['T1']+$_POST['T2']就是答案了
還剩下兩個問題
一個是如何處理加減乘除
就是動用到之前學過的if就能輕鬆處理
$_POST['D1']輸入類型是下拉式選單,當選擇加減乘除其中一個運算的時候<option>數值</option>
+ - * /就是$_POST['D1']的數值,所以if的寫法如下
if($_POST['D1']=='+') $sum = $_POST['T1'] + $_POST['T2'];
elseif($_POST['D1']=='-') $sum = $_POST['T1'] - $_POST['T2'];
elseif($_POST['D1']=='*') $sum = $_POST['T1'] * $_POST['T2'];
elseif($_POST['D1']=='/') $sum = $_POST['T1'] / $_POST['T2'];
我們用另一個變數$sum來承接運算過後的答案,以便於往後處理第二個問題
$sum就是最後處理所得出來的結果,就要把結果印出來了
就直接echo '答案=' . $sum;
當字元跟變數串起來印出來,就要用到 . 就可以了
變數是不需要單引號了,只要遇到固定字元就要單引號' '、或者雙引號" "
這樣從輸入到把結果印出來,都是透過網路界面來完成,這樣就是一個簡單的雲端運算
程式是個很嚴謹的工具,一不小心就會出錯
像剛剛處理加減乘除,看似沒有問題,卻隱藏了一個問題
就是除法的除數是不能為零,當$_POST['T2']為零或者沒有輸入,程式就會出現錯誤訊息
那如何解決呢?當說出來的時候,程式就能解決
當$_POST['T2']一定要有數值才能執行除法的指令
elseif($_POST['D1']=='/') {
if($_POST['T2']) $sum = $_POST['T1'] / $_POST['T2'];
else $sum = '無法執行';
}
因為elseif已經要執行一條以上的指令,所以要用{ }來涵蓋
對於PHP而言,0和無數值在廣義的解釋來講都是同樣的效果,都代表false、錯誤的、0
所以只要下if($_POST['T2'])這樣就可以代表$_POST['T2']一定要有數值,就可以執行除法
那else就代表0或者是無數值,那結果就要顯示'無法執行'
往後,當程式越來越複雜,想要輕易發現程式的Bug則是越來越困難
唯有,不斷假想所有情況,不斷的輸入、測試,才能盡量彌補程式的完整性