这个报错怎么用if判断呢

来源:2-1 通过array()形式定义数组

消除bug

2019-03-04 19:27:27

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>慕课网</title>
</head>
<body>
<form action="#" method="post">
      <input type="text" name="num" placeholder="请输入要打印的行数">
<br/><button text="submit" name="button" value="pyramid">金字塔</button>
<button text="submit" name="button" value="rhombus">空心菱形</button>
</form>

<?php
error_reporting(E_ALL&E_NOTICE);
    //接收用户提交的数据
$num=$_POST['num'];
   if($num>=0){
if($_POST){
//判断用户选择打印金字塔 
      if($_POST['button']=='pyramid'){
  //循环输出金字塔的行数
        for($i=1;$i<=$num;$i++){
//循环输出空白*
for($j=$i;$j<=$num;$j++){
echo '<span style="color:#FFF">*</span>';
}
//循环输出每行*数
    for($a=1;$a<=$i*2-1;$a++){
echo '*';
            }
echo '<br/>';
        }
//空心菱形上半部分
//判断用户选择打印空心菱形
  }elseif($_POST['button']=='rhombus'){
  //循环输出空心菱形的行数
for($i=1;$i<=$num;$i++){
//循环输出空白*
for($j=$i;$j<=$num;$j++){
             echo '<span style="color:#FFF">*</span>';
    }
//循环输出每行*数
            for($a=1;$a<=$i*2-1;$a++){
//判断头尾*进行输出
if($a==1||$a==$i*2-1){
echo '*';
}else{
echo '<span style="color:#FFF">*</span>'; 
}
}
echo '<br/>';
    }
//空心菱形下半部分
//循环输出空心菱形的行数-1
for($i=$num-1;$i>=1;$i--){
//循环输出空白*
for($j=$num;$j>=$i;$j--){
echo '<span style="color:#FFF">*</span>';
}
//循环输出每行*数
for($a=1;$a<=$i*2-1;$a++){
//判断头尾*进行输出
if($a==1||$a==$i*2-1){
echo'*';
}else{
echo '<span style="color:#FFF">*</span>';
}
}
echo'<br/>';
}
  }
}  
}else{
echo '层数请为正整数';
}

     
?>
</body>
</html>


写回答

1回答

好帮手慕查理

2019-03-05

您好,先判断是否有post数据,存在post数据时再接收数据,进行判断。参考如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>慕课网</title>
</head>
<body>
<form action="#" method="post">
    <input type="text" name="num" placeholder="请输入要打印的行数">
    <br/><button text="submit" name="button" value="pyramid">金字塔</button>
    <button text="submit" name="button" value="rhombus">空心菱形</button>
</form>
<?php
    if($_POST){
        //接收用户提交的数据
        $num=$_POST['num'];
        if($num>=0){
            //判断用户选择打印金字塔
            if($_POST['button']=='pyramid'){
                //循环输出金字塔的行数
                for($i=1;$i<=$num;$i++){
                    //循环输出空白*
                    for($j=$i;$j<=$num;$j++){
                        echo '<span style="color:#FFF">*</span>';
                    }
                    //循环输出每行*数
                    for($a=1;$a<=$i*2-1;$a++){
                        echo '*';
                    }
                    echo '<br/>';
                }
            //空心菱形上半部分
            //判断用户选择打印空心菱形
            }elseif($_POST['button']=='rhombus'){
                //循环输出空心菱形的行数
                for($i=1;$i<=$num;$i++){
                    //循环输出空白*
                    for($j=$i;$j<=$num;$j++){
                        echo '<span style="color:#FFF">*</span>';
                    }
                    //循环输出每行*数
                    for($a=1;$a<=$i*2-1;$a++){
                        //判断头尾*进行输出
                        if($a==1||$a==$i*2-1){
                            echo '*';
                        }else{
                            echo '<span style="color:#FFF">*</span>';
                        }
                    }
                    echo '<br/>';
                }
                //空心菱形下半部分
                //循环输出空心菱形的行数-1
                for($i=$num-1;$i>=1;$i--){
                    //循环输出空白*
                    for($j=$num;$j>=$i;$j--){
                        echo '<span style="color:#FFF">*</span>';
                    }
                    //循环输出每行*数
                    for($a=1;$a<=$i*2-1;$a++){
                        //判断头尾*进行输出
                        if($a==1||$a==$i*2-1){
                            echo'*';
                        }else{
                            echo '<span style="color:#FFF">*</span>';
                        }
                    }
                    echo'<br/>';
                }
            }
        }else{
            echo '层数请为正整数';
        }
    }
?>
</body>
</html>

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

0

0 学习 · 4928 问题

查看课程