在没输入num1和num2的情况下

在没输入num1和num2的情况下

http://img1.sycdn.imooc.com//climg/5d7704f90001b27704580124.jpg

<!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回答

同学你好,1. 在正常测试时,是不会抑制错误的。当关闭抑制错误时,报错:未定义的变量,如图所示:

http://img1.sycdn.imooc.com//climg/5d770a6e0001c96805780126.jpg

解决方法:可以先判断是否是post传值,如果时再进行赋值操作

2. 无法实现除法,因为同学在做判断时,少了else。代码如下:

<?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('可输入数字,进行计算哦!');
}

祝学习愉快!

  • 慕侠6347478 提问者 #1
    <?php error_reporting(E_ALL&~E_NOTICE); $num1=$_POST['num1']; $num2=$_POST['num2']; $op=$_POST['op']; $act=$_POST['act']; if($act){ 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 '/': if($num2!=0){ $res=$num1/$num2; }else{ exit('0不能当做除数'); } case '%': $res=$num1%$num2; break; } echo "运算结果为:{$num1}{$op}{$num2}={$res}" }else{ exit('这不是数字'); } } ?> <html> <head> <meta chaset="utf-8"> <title>计算器2</title> </head> <body> <h1>计算器2</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"> </form> </body> </html> 这里为什么报错
    2019-09-10 14:56:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师