2019-05-06 10:26:14 2873次浏览 6条回答 0 悬赏 10 金钱

大佬,PHP 判断一个变量是否是整形,用这个函数 is_numeric() 严谨么?

最佳答案

  • 花椒 发布于 2019-05-06 16:17 举报

    不严谨, is_numeric() 函数用于检测变量是否为数字或数字字符串,
    is_int() 函数用于检测变量是否是整数

  • 回答于 2019-05-06 10:59 举报

    应该就这些了吧

    var_dump(is_numeric('1111')); // true
    var_dump(is_numeric('1111.22')); // true
    var_dump(is_numeric(1111)); // true
    var_dump(is_numeric(100.22)); // true
    var_dump(is_numeric('0x12')); // false
    var_dump(is_numeric(0x12)); // true
    var_dump(is_numeric('a1111')); // false
    var_dump(is_numeric('汉字')); // false
    var_dump(is_numeric('')); // false
    var_dump(is_numeric('0')); // true
    var_dump(is_numeric(null)); // false
    var_dump(is_numeric(' ')); // false
    
    2 条回复
    回复于 2019-05-06 14:59 回复

    没看懂啥意思啊,is_numericis_int 哪个判断整数好一些?

    回复于 2019-05-06 15:40 回复

    is_int的参数必须是整形的int型才行,带小数的会返回false, is_numeric的参数可以是纯数字的字符串,可以带小数

  • 回答于 2019-05-06 15:31 举报

    is_int()

  • 回答于 2019-05-06 17:23 举报

    is_numeric()可能会有小数点

  • 回答于 2019-05-07 11:07 举报

    如果整数字符串也想判断为true,我觉得你可以这样写:
    $var = 33;//true
    $var = '33';//true
    $var = '33s';//false
    $var = '33.3';//false
    $var = '-33';//true
    $var = '0';//true

    $int = intval($var);
    if((string)$int === (string)$var){
    return true;
    }else{
    return false;
    }

  • 回答于 2019-09-17 10:30 举报

    is_numeric() 函数用于检测变量是否为数字或数字字符串。如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。
    is_int() 函数用于检测变量是否是整数。别名函数():is_integer()、is_long() 。
    注意: 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()。

您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-09-23
在线时长:168小时13分
  • 粉丝29
  • 金钱4725
  • 威望30
  • 积分6705

热门问题