我设定了除数不能为0的判断条件,在第一个空不填的情况下会正常显示报错,如图:
但是,如果第一格填了数字,就不会提示“除数不能为0”,如图:
请问老师这是什么原因呢?
PHP代码如下:
<?php
$num1=true;
$num2=true;
$num3=true;
$numa=true;
$numb=true;
$message="";
if (isset($_GET["sub"])) {
if ($_GET["num1"]=="") {
$num1=false;
$message.="第一栏不能为空";
}
if (!is_numeric($_GET["num1"])) {
$numa=false;
$message.="第一栏不是数字";
}
if ($_GET["num2"]=="") {
$num2=false;
$message.="第二栏不能为空";
}
if (!is_numeric($_GET["num2"])) {
$numb=false;
$message.="第二栏不是数字";
}
if ($_GET["ysf"]=="/"&&$_GET["num2"]==0) {
$num3=false;
$message.="除数不能为0";
}
if ($num1&&$numa&&$num2&&$numb&&$num3) {
switch($_GET["ysf"]){
case "+":
$sum=$_GET["num1"]+$_GET["num2"];
break;
case "-":
$sum=$_GET["num1"]-$_GET["num2"];
break;
case "x":
$sum=$_GET["num1"]*$_GET["num2"];
break;
case "/":
$sum=$_GET["num1"]/$_GET["num2"];
break;
case "%":
$sum=$_GET["num1"]%$_GET["num2"];
break;
}
}
}
if(isset($_GET["sub"])){
echo '<tr><td colspan="5">';
if($num1 && $num1 && $numa && $numb){
echo "结果:".$_GET["num1"]." ".$_GET["ysf"]." ".$_GET["num2"]." = ".$sum;
}else{
echo $message;
}
echo '</td></tr>';
}
?>