请老师检查作业
来源:1-17 编程练习
Vcooli
2019-08-14 18:06:44
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计算器</title>
</head>
<body>
<form action="#" method="post">
数字1:<input type="text" name="num1" id="" placeholder="请输入数字"/>
<select name="xuanz" id="">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
数字2:<input type="text" name="num2" id="" placeholder="请输入数字"/>
<input type="submit" value="提交" name="act"/>
</form>
<?php
error_reporting(0);
//post接受数据
//判断用户是否点了提交按钮
$act=$_POST['act'];
if($act) {
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$xuanz=$_POST['xuanz'];
//判断用户输入数据是否为int数值
if (is_numeric($num1) && is_numeric($num2)) {
switch ($xuanz) {
case '+':
$res = $num1 + $num2;
break;
case '-':
$res = $num1 - $num2;
break;
case '*':
$res = $num1 * $num2;
break;
case '/':
switch($num2!=0) {//判断被除数是否为0
case 1:
$res = $num1 / $num2;
break;
case 0:
exit('被除数不能为0,请重新输入');
}
break;
case '%':
switch ($num2!=0){
case 1:
$res = $num1 % $num2;
break;
case 0;
exit('被取余的数不能为0,请重新输入');
}
break;
default:
echo '非法数值';
break;
}
} else {
exit ('非法数值,请重新输入');
}
echo "<h1>计算的结果为:<br/>{$num1}{$xuanz}{$num2}={$res}</h1>";
}
?>
</body>
</html>
1回答
同学你好,已完成练习,棒棒哒,不过有一个小建议,在平时测试代码时是不会抑制错误的。在关闭抑制符后报错,如图所示(注意:未定义的变量):

错误原因:由于程序第一次运行,并未接收到post值则开始定义变量造成的。
解决方法:使用isset()或者empty()检测是否有post数据。代码如下:
<?php
// error_reporting(0);
//post接受数据
//判断用户是否点了提交按钮
// $act=$_POST['act'];
if(isset($_POST['act'])) {
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$xuanz=$_POST['xuanz'];
//判断用户输入数据是否为int数值
if (is_numeric($num1) && is_numeric($num2)) {
switch ($xuanz) {
case '+':
$res = $num1 + $num2;
break;
case '-':
$res = $num1 - $num2;
break;
case '*':
$res = $num1 * $num2;
break;
case '/':
switch($num2!=0) {//判断被除数是否为0
case 1:
$res = $num1 / $num2;
break;
case 0:
exit('被除数不能为0,请重新输入');
}
break;
case '%':
switch ($num2!=0){
case 1:
$res = $num1 % $num2;
break;
case 0;
exit('被取余的数不能为0,请重新输入');
}
break;
default:
echo '非法数值';
break;
}
} else {
exit ('非法数值,请重新输入');
}
echo "<h1>计算的结果为:<br/>{$num1}{$xuanz}{$num2}={$res}</h1>";
}
?>祝学习愉快!
相似问题