求老师检查

来源: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;
    }
}
?>

祝学习愉快!

0

好帮手慕小尤

2019-05-23

同学你好,逻辑正确,继续努力,加油!祝学习愉快!

0
hcooli
h @$act=$_POST['act']; 好像这样就可以不报错了。是不是可以这样做呢老师
h019-08-14
共1条回复

0 学习 · 4928 问题

查看课程

相似问题

回答 2

请老师检查

回答 1

请老师检查

回答 1

请老师检查

回答 1

请老师检查

回答 1