PHP 判断变量是否为数字 is_numeric()

  • 2017-3-2 11:35
  • PHP二次开发
  • 阅读(2589)
  • 评论(2
  • 来源:互联网
  • 摘要: is_numeric — 检测变量是否为数字或数字字符串。基本使用如下: ?php $tests = array( "42", 1337, "1e4", "not numeric", array(), 9.1 ); foreach ($tests as $element) { if (is_numeric($element)) { ...
    is_numeric — 检测变量是否为数字或数字字符串。

    基本使用如下:
        <?php
        $tests = array(
            "42",
            1337,
            "1e4",
            "not numeric",
            array(),
            9.1
        );
        
        foreach ($tests as $element) {
            if (is_numeric($element)) {
                echo "'{$element}' is numeric", PHP_EOL;
            } else {
                echo "'{$element}' is NOT numeric", PHP_EOL;
            }
        }
        ?>

    程序运行结果:
        '42' is numeric
        '1337' is numeric
        '1e4' is numeric
        'not numeric' is NOT numeric
        'Array' is NOT numeric
        '9.1' is numeric

    有发现什么问题没?字符串 1e4 也被判定为数字了。

    is_numeric函数不只支持10进制的数字,也支持16进制类型数字。所以在使用中验证纯自然数字如QQ号码这样的数字串,要配合 intval()整型化函数。
        <?php
            $id = 0xff33669f;
            if (is_numeric($id))
            echo $id, '符合要求。';//output 4281558687符合要求。
            else
            echo $id, '不符合要求。';
        ?>

    如果需要判断整数,可以使用 is_int()函数,以免发生一些字符串也当成是合法数字的情况。

    is_numeric能判定一个变量是否为数字或数字字符串,但是它的判定范围太宽了。整数、小数、指数表示以及16进制数值都会通过判断。 平时判定id的时候,用它就有点不合适。今天发现一个新的判定函数:ctype_digit,它可以只判定整数,这样就比is_numeric好一些。其他还有ctype_xdigit判定16进制整数,ctype_alpha判定字母等等函数。

    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-2578-1.html

    相关阅读

    发表评论

    最新评论

    引用 掼蛋游戏   2019-3-29 09:19
    想学php
    引用 赚钱信息   2019-3-29 09:17
    沙发

    查看全部评论(2)

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!