求老师检查
来源:1-17 编程练习
QiuBaa
2019-05-23 17:21:38
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>计算器</h1>
<form action="#" method='post'>
num1: <input type="text" name="num1" id="">
<select class="" name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
num2: <input type="text" name="num2" id="">
<hr/>
<input type="submit" name='act' value="计算">
</form>
<?php
error_reporting(E_ALL & ~E_NOTICE);
//判断用户是否点击了计算按钮
$act = $_POST['act'];
switch ($act) {
case true:
//接收数据
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$op = $_POST['op'];
//判断$num1和$num2是否都为数值
if (is_numeric($num1) && is_numeric($num2)) {
//根据不同的操作符完成不同的运算
switch ($op) {
case '+':
$res = $num1 + $num2;
break;
case '-':
$res = $num1 - $num2;
break;
case '*':
$res = $num1 * $num2;
break;
case '/':
//判断$num2是否为0
switch ($num2 != 0) {
case true:
$res = $num1 / $num2;
break;
default:
exit('0不能当做除数');
break;
}
break;
default:
echo '非法操作<br/>';
break;
}
echo "运算结果为:<br/>{$num1}{$op}{$num2}={$res}";
break;
}
default:
exit('非法操作数');
break;
}
?>
</body>
</html>
2回答
好帮手慕小尤
2019-08-15
同学你好,@也是错误抑制的一种。同学可先判断是否是post传值然后在进行赋值操作。代码如下:
<?php
if ($_POST) {
//判断用户是否点击了计算按钮
$act = $_POST['act'];
switch ($act) {
case true:
//接收数据
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$op = $_POST['op'];
//判断$num1和$num2是否都为数值
if (is_numeric($num1) && is_numeric($num2)) {
//根据不同的操作符完成不同的运算
switch ($op) {
case '+':
$res = $num1 + $num2;
break;
case '-':
$res = $num1 - $num2;
break;
case '*':
$res = $num1 * $num2;
break;
case '/':
//判断$num2是否为0
switch ($num2 != 0) {
case true:
$res = $num1 / $num2;
break;
default:
exit('0不能当做除数');
break;
}
break;
default:
echo '非法操作<br/>';
break;
}
echo "运算结果为:<br/>{$num1}{$op}{$num2}={$res}";
break;
}
default:
exit('非法操作数');
break;
}
}
?>祝学习愉快!
好帮手慕小尤
2019-05-23
同学你好,逻辑正确,继续努力,加油!祝学习愉快!