2-12作业反馈问题

2-12作业反馈问题

5a7189a6000122ea03940206.jpg

5a7189a60001fe8d05000229.jpg

我有两个问题 

第一个问题是我自己运行的时候并没有通知报错,如图一

第二个就是老师建议用isset来检查函数是否存在,如图二,像我这段代码的时候具体应该如何进行;


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>homework</title>
  </head>
  <body>
    <form class="" action="test.php" method="post">
      <input type="text" name="num1" placeholder="请输入要打印的行数"><br/>
      <button type="submit" name="triangle" value="tr">金字塔</button>
      <button type="submit" name="diamond" value="di">菱形</button>
    </form>
    <?php
    error_reporting(E_ALL&~E_NOTICE);
      $num1=$_POST['num1'];//接收数字变量
      $triangle=$_POST['triangle'];//接收金字塔变量
      $diamond=$_POST['diamond'];//接收菱形变量
      //当接收到三角形变量的时候
      if($triangle){
        //$num1是接收到数字变量的行数
        for($i=1;$i<=$num1;$i++){
          //输出每行的空格
          for($j=$num1-$i;$j>=1;$j--){
            echo "<span style='color:#fff;'>*</span>";
          }
          //输出每行的空格,行数和第几列关系到空格数量的个数
          for($k=1;$k<=2*$i-1;$k++){
            echo '*';
          }
          echo '<br/>';
        }
      }


      //当接收到菱形变量的时候
      if($diamond){
        //上半部分的三角形

        //控制行数
        for($i=1;$i<=$num1;$i++){
            //输出每行的空格,行数和第几列关系到空格数量的个数:
            for($j=$num1-$i;$j>=1;$j--){
              echo '<span style="color:#fff;">*</span>';
            }
            //输出每行的星星以及空格
            for($k=1;$k<=2*$i-1;$k++){
              //输出第一个星星位置,再找出最后一个星星位子输出
              if($k==1||$k==2*$i-1){
                echo '*';
              //除了寻找的位子都是空格
              }else{
                echo '<span style="color:#fff;">*</span>';
              }
            }
            echo '<br/>';
        }

        //下下半部分三角形

        //控制行数,要比上半部分少一个行
        for($i=$num1-1;$i>=1;$i--){
          //输出每行的空格,行数和第几列关系到空格数量的个数:
          for($j=1;$j<=$num1-$i;$j++){
              echo '<span style="color:#fff;">*</span>';
          }
          //输出每行的星星以及空格
          for($k=1;$k<=2*$i-1;$k++){
            if($k==1||$k==2*$i-1){
              echo '*';
            }else{
              echo '<span style="color:#fff;">*</span>';
            }
          }
          echo '<br/>';
        }
      }




    ?>
  </body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

您好,老师是将你屏蔽错误的代码去掉之后运行的,会出现Notice错误。但是这并不是说代码逻辑有问题,而是对于这种情况,建议同学进行解决,不要存在Notice错误。

isset()函数用于检测变量是否已设置并且非 NULL。例如可以检测$_POST['num1'];是否为NULL,为NULL时不执行,不为NULL时在执行代码,同样的方式判断其余两个$_POST接收到的值。

如果解决了您的问题,请采纳,祝学习愉快!

  • qq_Lcy_6 提问者 #1
    除了直接这样检测之外 if(isset($_POST['triangle']){ } 不能直接检测完再直接赋值吗,假如我用isset()检测triangle之后 iseet($_POST['triangle']); $triangle=$_POST['triangle']; 然后再if($triangle){ }
    2018-02-01 11:30:19
  • qq_Lcy_6 提问者 #2
    非常感谢!
    2018-02-01 14:18:58
提问者 qq_Lcy_6 2018-02-01 11:30:59
除了直接这样检测之外 if(isset($_POST['triangle']){
}
不能直接检测完再直接赋值吗,假如我用isset()检测triangle之后
iseet($_POST['triangle']);
$triangle=$_POST['triangle'];
然后再if($triangle){
}


  • 您好,在检测时是需要判断一下的,因为您要根据判断的结果去决定是否要执行之后的程序,如果只是检测了$_POST接收的值是否为NULL,却没有做任何操作,如果此时接收的是NULL,那定义的变量依旧是NULL。除了使用isset()检测之外,还可以使用empty()检查一个变量是否为空。祝学习愉快!
    2018-02-01 14:10:42
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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