在没输入num1和num2的情况下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<h1>简易计算器</h1>
<form action="#" method="post">
<input type="text" name="num1">
<select name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
<input type="text" name="num2">
<input type="submit" name="act" value="计算">
</form>
</body>
</html>
<?php
error_reporting(E_ALL&~E_NOTICE);
$act=$_POST['act'];
if($act){
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$op=$_POST['op'];
if(is_numeric($num1)&&is_numeric($num2)){
if($op=='+'){
$res=$num1+$num2;
}elseif($op=='-'){
$res=$num1-$num2;
}elseif($op=='*'){
$res=$num1*$num2;
}elseif($op=='/'){
if($num2!=0){
$res=$num1/$num2;
}exit('0不能当做除数');
}elseif($op=='%'){
$res=$num1%$num2;
}else{
echo '你怎么做到的';
}echo "运算结果为:{$num1}{$op}{$num2}={$res}";
}
}else{exit('这不是数字');
}
正在回答
同学你好,1. 在正常测试时,是不会抑制错误的。当关闭抑制错误时,报错:未定义的变量,如图所示:
解决方法:可以先判断是否是post传值,如果时再进行赋值操作
2. 无法实现除法,因为同学在做判断时,少了else。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php // error_reporting(E_ALL&~E_NOTICE); // $act=$_POST['act']; // 判断是否是post传值 if ( $_POST ){ $num1 = $_POST [ 'num1' ]; $num2 = $_POST [ 'num2' ]; $op = $_POST [ 'op' ]; if ( is_numeric ( $num1 )&& is_numeric ( $num2 )){ if ( $op == '+' ){ $res = $num1 + $num2 ; } elseif ( $op == '-' ){ $res = $num1 - $num2 ; } elseif ( $op == '*' ){ $res = $num1 * $num2 ; } elseif ( $op == '/' ){ if ( $num2 !=0){ $res = $num1 / $num2 ; } else { // 添加else 如果不添加会导致只要是除法计算都会提示 0不能当做除数 exit ( '0不能当做除数' ); } } elseif ( $op == '%' ){ $res = $num1 % $num2 ; } else { echo '你怎么做到的' ; } echo "运算结果为:{$num1}{$op}{$num2}={$res}" ; } else { // 可以在输入非数字时进行提示,这不是数字。 exit ( '这不是数字' ); } } else { // 未输入内容是可提示可以进行计算 exit ( '可输入数字,进行计算哦!' ); } |
祝学习愉快!
- 参与学习 人
- 提交作业 626 份
- 解答问题 4928 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧