为何下面两个代码的结果不一样?
来源:2-12 作业题
SuCrazy
2018-04-15 15:43:53
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="utf-8">
<title>金字塔和空心菱形</title>
</head>
<body>
<form class="" action="#" method="post">
<input type="text" name="num" value="" placeholder="请输入正整数...">
<br/>
<input type="submit" name="pra" value="金字塔">
<input type="submit" name="dia" value="空心菱形">
</form>
<?php
error_reporting(E_ALL&~E_NOTICE);
header('content-type:text/html;charset=uft-8');
$num=$_POST['num'];
$pra=$_POST['pra'];
$dia=$_POST['dia'];
//金字塔形
if ($pra) {//判断是否为金字塔
if ($num>0&&is_int($num)){
for ($i=1;$i<=$num; $i++) {
//输出空格
for ($j=$num-$i;$j>0;$j--) {
echo '<span style="color:#FFF">*</span>';
}
//输出*号
for ($k=1;$k<=2*$i-1 ;$k++) {
echo "*";
}
echo '<br/>';
}
}else{
exit('请输入正整数');
}
}
在这里会永远提示“请输入正整数”
<?php
$num=2.2;
if ($num>0&&is_int($num)){
for ($i=1;$i<=$num; $i++) {
//输出空格
for ($j=$num-$i;$j>0;$j--) {
echo '<span style="color:#FFF">*</span>';
}
//输出*号
for ($k=1;$k<=2*$i-1 ;$k++) {
echo "*";
}
echo '<br/>';
}
}else{
exit('请输入正整数');
}
var_dump($num);
?>
而在这个代码中程序就能很好的执行判断
1回答
imooc_澈
2018-04-16
您好,如下图,因为您将$num赋值为2.2,无法通过is_int($num)的判断,代码就会执行else语句块,输出请输入正整数的提示
如果解决了你的问题,请采纳,祝学习愉快~
相似问题