這次用php實現的內容是:使用者輸入兩個數字,然後選擇加減乘除這四個運算子其中的一個或多個,將計算結果顯示出來。
我的想法是這樣的:在HTML中建立表單,其中包括:1.選擇框,讓使用者選擇加減乘除運算,選擇的結果保存在operation這個數組中;2.文字框,讓使用者輸入要計算的數字,輸入的結果保存在num這個陣列中;3.提交按鈕,提交表單內容。表單以POST方法直接提交給本php頁面處理,其中$_POST['operation']儲存了運算子信息,$_POST[num']儲存了要參與運算的資料。在php腳本裡判斷運算符,並進行對應計算,將結果儲存到$msg的陣列中,最後將$msg輸出即可。
好了,直接上碼:
<?php $result=array(); //用来保存计算结果的数组 $msg=array(); //保存结果消息的数组 $i=0; //结果的个数 $error=""; //错误消息 if(isset($_POST['operation'])){ //如果已经选择了运算符 if((""!=$_POST['num'][0])&&""!=($_POST['num'][1])){ //输入文档框内容部位空 $num1=(double)$_POST['num'][0]; //从字符串强制转换成double型的类型数据 $num2=(double)$_POST['num'][1]; foreach($_POST['operation'] as $op){ //读取所选择的运算符 switch($op){ //判断运算符属于哪一类 case 'add': $result[$i]=$num1+$num2; //加法 $msg[$i]="$num1"."+"."$num2"."="."$result[$i]";//将完整的算数式保存到消息数组里面 $i++; break; case 'sub': $result[$i]=$num1-$num2; //减法 $msg[$i]="$num1"."-"."$num2"."="."$result[$i]";//将完整的算数式保存到消息数组里面 $i++; break; case 'mul': $result[$i]=$num1*$num2; //乘法 $msg[$i]="$num1"."*"."$num2"."="."$result[$i]";//将完整的算数式保存到消息数组里面 $i++; break; case 'div': if($_POST['num'][1]!=0){ //保证被除数不能为0 $result[$i]=$num1/$num2; //除法 $msg[$i]="$num1"."/"."$num2"."="."$result[$i]"; //将完整的算数式保存到消息数组里面 $i++; } else $error="被除数不能为0\n" ; //如果除数为0,错误消息有提示 break; } } } else { //输入的数字有为空的情况 if( ""!=$_POST['num'][0] ) $error.="请输入num 1 \n"; //记录到错误消息中 if( ""!=$_POST['num'][1] ) $error.="请输入num 2 \n"; } } ?>"; echo "计算结果如下:"."
運作介面如下:
評估與改進:
經過測試,發現丟存在一些缺陷,比如說:每次輸入完數據,提交之後,計算結果是顯示出來了,可是頁面也被更新了,原先輸入的數據就沒有了。改進之後的結果應該是這樣的:每次提交之後,文字方塊都保存著上次的記錄,複選框不保存。具體的實現呢,就是在文字框設定屬性,這個我不是特別熟,現在也懶得弄它,就先擱一擱吧。
至於程式碼的話,php腳本裡面用的變數比較多,而消耗記憶體也對應較大,所以像$result[],$num1,$num2這些變數不被另外腳本呼叫的話,可以省去;但是為了更好的擴充性,增加功能時不用大幅改變原來程式碼,留著比較好。
有興趣的讀者可以到http://www.beartracker.top/server1.php去測試,歡迎指正哦^_^
以上就介紹了php學習筆記-簡單計算機腳本,包含了php學習的內容,希望對PHP教學有興趣的朋友有幫助。