Maison > Article > développement back-end > php学习笔记——简单计算器脚本 php从入门到精通 php学习网站 php100
这次用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 "计算结果如下:"."
运行界面如下:
输入 13 ,12
如果运算符全部选择的话:
评价和改进:
经过测试,发现扔存在一些缺陷,比如说:每次输入完数据,提交之后,计算结果是显示出来了,可是页面也被更新了,原先输入的数据就没有了。改进之后的结果应该是这样的:每次提交之后,文本框都保存着上次的记录,复选框不保存。具体的实现呢,就是在文本框设置属性,这个我不是特别熟,现在也懒得去弄它,就先搁一搁吧。
至于代码的话,php脚本里面用的变量比较多,而消耗内存也相应较大,所以像$result[],$num1,$num2这些变量不被另外脚本调用的话,可以省去;但是为了更好的扩展性,增加功能时不用大幅改变原来代码,留着比较好。
感兴趣的读者可以到http://www.beartracker.top/server1.php去测试,欢迎指正哦^_^
以上就介绍了php学习笔记——简单计算器脚本,包括了php学习方面的内容,希望对PHP教程有兴趣的朋友有所帮助。