ps:
又试过定义$u1_2的初始值为0, 而非"", 但is_integer($u1_2)还是false.

解决方案 »

  1.   

    $_REQUEST["u1_2"]))返回的东西默认都是字符串,所以你用is_integer得到的肯定是false,
    就像:
    $a = "123";
    if(is_integer($a)) 得到的是false一样.is_numeric判断的是否是数字变量或者可以转换成数字的字符串变量,所以能够得到true具体的判断是否是整数没有什么好的方法,可以这样考虑:
    用is_numeric判断是否是数字或者数字字符串,返回true后再强行转换成数字字符串,然后再判断该字符串内是否含有小数点,再判断小数点后是否全部是0.
      

  2.   

    function isInt($i)
    {
    return preg_match('/^-?\d+$/',$i);
    }
      

  3.   

    if(strlen(intval($u1_2)) == strlen($u1_2))
      

  4.   

    hoho!!
    2位强人啊!!思维就是不一样!唠叨老大的方法似乎还是有漏洞
    $u1_2 的值如果是单字母(如: "a" "b")的情况下,返回的结果也是true.不过在一般的实际应用情况下应该是不会出现单字母输入的.
      

  5.   

    function isInt($i)
    {
    return preg_match('/^-?\d+$/',$i);
    }
    ================
    问一下,03也算整数吗?
      

  6.   

    if((strlen(intval($u1_2)) == strlen($u1_2))&&(is_numeric($u1_2)))复杂了些~~
      

  7.   

    if ( is_numeric($x) ? intval($x) == $x : false )
      

  8.   

    法1.bool is_int ( mixed var)
    法2.用ceil取整后与原值对比判断
    法3.匹配正则/^-?\d+$/
    ...
    ...
    法n.
    ...
      

  9.   

    用ceil是不正确的
    <?php
    $n = "12a0";
    if(ceil($n) == $n)
      echo "yes";
    else
      echo "no";//这样写简单些,也规范些
    if(strval(intval($n)) == $n)
      echo "yes";
    else
      echo "no";
    ?>
      

  10.   

    谢谢各位, 原来是因为$_REQUEST的返回值都是字符串, 所以没有直接可以判断的函数了. 了解了.谢谢xuzuning(唠叨)的方法, 不过因为magicsnake(北极狐)提出的漏洞所以综合下来最后采用了edlongren(edlongren)的code.cloudchen(cloudchen)的方法偶看不懂 :-p 试了一下似乎和我想要的结果不符合, 不过还是谢谢.