2-12作业反馈问题


我有两个问题
第一个问题是我自己运行的时候并没有通知报错,如图一
第二个就是老师建议用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>32
收起
正在回答
2回答
您好,老师是将你屏蔽错误的代码去掉之后运行的,会出现Notice错误。但是这并不是说代码逻辑有问题,而是对于这种情况,建议同学进行解决,不要存在Notice错误。
isset()函数用于检测变量是否已设置并且非 NULL。例如可以检测$_POST['num1'];是否为NULL,为NULL时不执行,不为NULL时在执行代码,同样的方式判断其余两个$_POST接收到的值。
如果解决了您的问题,请采纳,祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星