欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php判断是字符是否为数字

 is_bool();//判断是否为布尔型
   is_float(); //判断是否为浮点型
   is_int(); //判断是否为整型
   is_numeric(); //判断是否为数值型
   is_string(); //判断是否为字符串
   is_array(); //判断是否为数组

   is_object(); //判断是否为对象

 

 

[php] view plain copy
 
  1. if(mb_substr($keyword,0,4,"UTF-8") == '课程查询'){  
  2.                 $clen=(int)mb_strlen($keyword,"UTF-8");  
  3.                 for($i=4;$i<$clen;$i++)     //$keyword="课程查询计135"  
  4.                    if(is_numeric(mb_substr($keyword,$i,1,"UTF-8")))//判断第一个为数字的位  
  5.                        {  
  6.                           $t=$i;  
  7.                           break;  
  8.                        }  
  9.                  $t=(int)$t;  
  10.                 $contentStr = "<a href='minikb.sinaapp.com/?xy=".mb_substr($keyword,4,$t-4,"UTF-8")."&bj=".mb_substr($keyword,$t,$clen-$t,"UTF-8")."'>点击查看课程</a>";  
  11.             }  
来自 http://blog.csdn.net/u014552756/article/details/50295119


由于PHP属于弱类型语言, 所以在变量类型上有优势, 也有自然有麻烦的地方。比如,如何判断一个变量是否为整型,这就是个很容易忽视的问题,虽然容易~~~

方法/步骤

 
  1. 1

    先给出我的办法:

    public static function isInteger( $value ) {

        return is_numeric($value) && is_int($value+0);

    }

  2. 2

    先说一下“is_numeric”, 他是用来检查一个变量是不是一个数字,

    但是, 他不检查是不是整数。

    例如:

     

    <?php$tests = array(

        "42",1337,0x539,02471,0b10100111001,

        1337e0,"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

    '1337' is numeric

    '1337' is numeric

    '1337' is numeric

    '1337' is numeric

    'not numeric' is NOT numeric

    'Array' is NOT numeric

    '9.1' is numeric

  3. 3

    is_int 用来检查变量是不是整数, 这里, 如果变量是字符串, 将会返回false。

    例如:

    var_dump(is_int(23)); //bool(true)

    var_dump(is_int("23")); //bool(false)

    var_dump(is_int(23.5)); //bool(false)

    var_dump(is_int(NULL)); //bool(false)

    var_dump(is_int("")); //bool(false)


来自 http://jingyan.baidu.com/article/ceb9fb10c3c6ae8cad2ba027.html


最佳答案
 

is_float — 检测变量是否是浮点型

http://cn.php.net/manual/zh/function.is-float.php

is_int — 检测变量是否是整数

http://cn.php.net/manual/zh/function.is-int.php

1
2
3
4
5
6
7
$a = 12345;
$b = 123.45;
 
var_dump(is_float($a));//false;
var_dump(is_int($a));//true;
var_dump(is_float($b));//true;
var_dump(is_int($b));//false;
来自 https://zhidao.baidu.com/question/1242799981538499339.html


php判断变量是否为数字is_numeric()与我联系

 

is_numeric — 检测变量是否为数字或数字字符

复制代码
<?php
$tests = array(
    "31", 
    1380, 
    "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;
    }
}
?>
复制代码

程序运行结果:

复制代码
'31' is numeric
'1380' 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判定字母等等函数。

来自 http://www.cnblogs.com/afish/p/3970159.html


普通分类: