对老师帮忙看一下这种写法对不对?有啥问题为啥出不来结果?
来源:1-17 编程练习
慕婉清9404838
2019-12-30 13:36:23
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算器</title>
</head>
<body>
<h1>计算器</h1>
<form action="#" method="post">
数值1:<input type="text" name="num1">
<select name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
数值2:<input type="text" name="num2">
<input type="submit" value="提交" name="act">
</form>
<?php
$act=$_POST['act'];
if ($act) {
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$op=$_POST['op'];
if (is_numeric($num1)&&is_numeric($num2)) {
switch ($op) {
case '+':
$result=$num1+$num2;
break;
case '-':
$result=$num1-$num2;
break;
case '*':
$result=$num1*$num2;
break;
case '/':
switch ($num2) {
case '0':
die("<h1>警告:除数不能为0!</h1>");
break;
}
case '%':
$result=$num1%$num2;
break;
}
}else{
exit('请输入合法数!');
}
echo '运算结果为:<br/>',$num1,$op,$num2,'=',$result;
}
?>
</body>
</html>
1回答
同学你好,1. 运行代码时报没有找到变量的错误。如下图所示:

错误原因:由于程序第一次运行,并未接收到post值则开始定义变量造成的。
解决方法:使用isset()或者empty()检测是否有post数据。如果存在则进行运算。修改后代码如下:

2. 测试代码未发现,出不来结果的情况,如果同学测试代码时,还存在此情况请同学反馈。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题