php计算器验证只能为数字,求解答php一个简易的计算器的程序问题?

问题1:err以及flag变量均已在代码上部php代码中定义,但是运行时还是提示在html代码块中flag和err没有定义

请检查你2个变量的定义位置,你会发现是在if(!empty($_POST['sub'])){}方法体中,因为着,如果没有提交数据,这2个变量是不会被定义的,所以要在提交判断之前就进行定义。

问题2:另外就是提示变量num1和变量num2没有定义,这样的提示是否是需要$num1 = $_POST['num1']; 这样定义一下?

num1和num2在程序中是没有定义的,所以需要在提交判断之前就先定义,而$num1 = $_POST['num1']; 的操作,必须在有数据提交的时候才能执行,否则由于没有post数据,会导致出现错误,

最后,html代码体中,不能使用$_POST['num1']这样的方式取值,因为在首次进入页面的时候,没有post数据,所以$_POST['num1']也会报错。以下为修改后代码,请注意加粗的代码:

//计算器处理的PHP代码

//tip:这里要先定义

$num1='';

$num2='';

$ysf='';

//tip:提示变量的定义要在判断数据提交之前

$err = "";

$flag = true;

$sum = 0;

if(!empty($_POST['sub'])){

//echo "提交";

//tip:检测到数据提交,进行赋值,以便在页面上展示数据

$num1=$_POST['num1'];

$num2=$_POST['num2'];

$ysf=$_POST['ysf'];

if($_POST['num1'] == ""){

$flag = false;

$err .="第一个数不能为空
";

}else{

if(!is_numeric($_POST['num1'])){

$flag = false;

$err .="第一个不是数字,无法计算
";

}

}

if($_POST['num2'] == ""){

$flag = false;

$err .="第二个数不能为空";

}else{

if(!is_numeric($_POST['num2'])){

$flag = false;

$err .="第二个不是数字,无法计算
";

}

}

if($flag){

switch($_POST['ysf']){

case "+":

$sum = $_POST['num1'] + $_POST['num2'];

break;

case "-":

$sum = $_POST['num1'] - $_POST['num2'];

break;

case "x":

$sum = $_POST['num1'] * $_POST['num2'];

break;

case "/":

if($_POST['num2'] == 0){

$flag = false;

$err .= "除数不能为0";

break;

}else{

$sum = $_POST['num1'] / $_POST['num2'];

break;

}

case "%":

if($_POST['num2'] == 0){

$flag = false;

$err .= "除数不能为0";

break;

}else{

$sum = $_POST['num1'] % $_POST['num2'];

break;

}

}

}

}

?>

简易计算器

一个简易计算器

>+

>-

>x

>/

>%

if($flag){

echo "运算结果是:".$num1.' '.$ysf.' '.$num2.' = '.$sum;

}else{

echo $err;

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值