下面这个程序为什么没有if else功能,才学的,不太会,我就是想输入的必须是整数,如果不是整数会提示输入整数,但是加入if else后李安计算功能也没有了==
<?php
if(isset($_POST['submit']))
{
$banjing=$_POST['banjing'];
echo $banjing;
}
define("p","3.14");
if(is_int($banjing)){
$zhouchang=2*p*$banjing;
$mianji = p*$banjing*$banjing;
echo "<br/>";
echo "周长= $zhouchang";
echo "<br/>";
echo "面积= $mianji";
}else{
echo "请输入一个整数";
}
?>

解决方案 »

  1.   

    把你的代码顺序调整了一下。
    define("p","3.14");
    if(isset($_POST['submit']))
    {
    $banjing=intval($_POST['banjing']);
    echo $banjing;
    if(is_int($banjing)){
    $zhouchang=2*p*$banjing;
    $mianji = p*$banjing*$banjing;
    echo "<br/>";
    echo "周长= $zhouchang";
    echo "<br/>";
    echo "面积= $mianji";
    }else{
    echo "请输入一个整数";
    }}
      

  2.   

    define("p","3.14");
    if(isset($_POST['submit']))
    {
        $banjing=intval($_POST['banjing']);
        echo $banjing;
        if(is_int($banjing)){
            $zhouchang=2*p*$banjing;
            $mianji = p*$banjing*$banjing;
            echo "<br/>";
            echo "周长= $zhouchang";
            echo "<br/>";
            echo "面积= $mianji";
        }else{
            echo "请输入一个整数";
        }
     
    }
      

  3.   

    问题描述的优点乱……不过你可以看看$_POST['submit']是否存在,否则你的if不会执行
      

  4.   

    顺序有点乱,
    可以先得到表单提交的值,转化一次(用int),进行判断,如果是整数就进行相应的计算,如果不是输出提示信息。写了一个例子,希望有用:
    html代码:
    <form name="ff" action="" method="post">
     输入一个整数:<input type="text" name="myint" /><br/>
     <input type="submit" name="mysubmit" value="计算" />
    </form>
    php代码:
    <?php
    define("p","3.14");
    if(isset($_POST['mysubmit']))
     {
         $myint=(int)$_POST['myint'];
         if(is_int($myint)){
         $zhouchang=2*p*$myint;
         $mianji = p*$myint*$myint;
     $str="周长为:".$zhouchang."<br/>面积为:".$mianji;
         echo $str;
         }else{
           echo "请输入一个整数";
         }
     } 
    ?>
      

  5.   

    define("p","3.14")应该放在条件循环语句前面
      

  6.   

    $_POST['banjing']是string, 所以is_int是false
      

  7.   

    1、is_int 只对数值型数据有效
      $banjing=$_POST['banjing'];
      应写作
      $banjing=$_POST['banjing']+0;
    2、define("p","3.14"); 应写作
       define("p",3.14);
      以免php总是做类型转换
      另外
      php 提供了 pi 函数用于得到圆周率,也提供了 M_PI 常量
      就不必舍近求远了