首页 >社区问答列表 >第一次进会有错误信息,点一下按钮就消失了

第一次进会有错误信息,点一下按钮就消失了

<meta charset="utf8">
<p>平年、闰年计算器</p>
<form>
   <input type="text" name="num1">
   <input type="submit" value="判断">
</form>]PS2RRFF5669X7~3S7N}XRR.pngCU}AW~B7NU4HAI$ZL_H%M5R.png

<?php
$num1=$_GET['num1'];
if(!is_numeric($num1))
{echo '请正确输入年份';
exit;}
if($num1%4==0 and $num1%100!==0 or $num1%400==0)
{echo $num1.'年是闰年';}
else
{echo $num1.'年是平年';}

?>

  • 海风
  • 海风    2019-10-09 11:09:142楼

    第一次进入时$_GET['num1']不存在,给一个量变赋不存在的值是会出错的,所以给$num1一个初始值,如:$num1 = isset($_GET['num1']) ? $_GET['num1'] : 2019;

    如果不想一刷新就出来2019年是平年这句话,程序修改如下:

    <?php

    if (!empty($_GET['num1'])){

    $num1=$_GET['num1'];

    if(!is_numeric($num1))
    {echo '请正确输入年份';
    exit;}
    if($num1%4==0 and $num1%100!==0 or $num1%400==0)
    {echo $num1.'年是闰年';}
    else
    {echo $num1.'年是平年';}

    }

    ?>

    +1添加回复

  • 回复

    好的 谢谢大佬

    红红火火恍恍惚惚  作者 · 2019-10-09 22:41:12
    回复

    为什么isset会报错 empty不会报错呢

    红红火火恍恍惚惚  作者 · 2019-10-09 23:07:47
    回复

    大佬,我刚才试验了一下 感觉结论是 当num1不为空 就执行$num1=$_GET['num1']; num1如果为空就不执行大括号内的代码 我这个结论是正确的还是错误的

    红红火火恍恍惚惚  作者 · 2019-10-09 23:17:50
    回复

    查一下手册,empty函数判断参数是否为空,如果参数为空则empty函数返回值为ture。因此,如果num1为空,empty('num1')返回真,!empty('num1')为假,故大括号内的代码不会执行。

    海风 · 2019-10-10 09:22:57
    回复
  • 卢小强
  • 卢小强  已被采纳  2019-10-08 11:52:191楼

    第一次进的时候 $num1的值 你可以打印出来看一下  我估计是NULL,NULL不能作为运算吧

    +1添加回复

  • 回复

    的确是null 这个要怎么解决呢

    红红火火恍恍惚惚  作者 · 2019-10-08 20:13:50
    回复