这次用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";
}
}
?>
<html>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>" > <!-- 将表单的信息提交给本页面,$_SERVER['PHP_SELF']显示本页面的文件名 -->
<p>
<label id="name1">NUM 1:</label><br />
<input type="text" name="num[]" /> <!-- 用num[]数组保存要计算的数字 -->
</p>
<p>
<label id="name2">NUM 2:</label><br />
<input type="text" name="num[]" />
</p>
<fieldset> <!-- 用operation[]数组保存运算符名称 -->
<legend>请选择运算符:</legend>
<input type="checkbox" id="add" name="operation[]" value="add"/>
<label for="add"> + 加法</label><br />
<input type="checkbox" id="sub" name="operation[]" value="sub"/>
<label for="sub"> - 减法</label><br />
<input type="checkbox" id="mul" name="operation[]" value="mul"/>
<label for="sub"> * 乘法</label><br />
<input type="checkbox" id="mul" name="operation[]" value="div"/>
<label for="sub"> / 除法</label><br />
</fieldset>
<button type="submit" name="submit" value="submit">提交</button>
</form>
<!-- 下面一段php代码显示计算结果和错误消息 -->
<?php
if(isset($msg)){
echo "<hr/>";
echo "计算结果如下:"."<br/>";
foreach($msg as $str)
echo $str."<br/>";
echo $error;
}
?>
</html>
运行界面如下:
立即学习“PHP免费学习笔记(深入)”;

输入 13 ,12
如果运算符全部选择的话:

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











