background image

PHP 中数字检测 is_numeric 与 ctype_digit 的区别

PHP 中的两个函数

is_numeric

和 ctype_digit 都是检测字符串是否是数字,但也存在一点区

is_numeric

 

:检测是否为数字字符串,可为负数和小数

ctype_digit

 

:检测字符串中的字符是否都是数字,负数和小数会检测不通过

 
注意,参数一定要是字符串,如果不是字符串,则会返回 0/FASLE 
 

 

下面是测试例子:
 
代码如下:
 

$a

 = 0001111222 ; 

var_dump(

$a

); 

var_dump(

is_numeric

(

$a

)); 

//true 

var_dump(ctype_digit(

$a

)); 

//true 

$a

 = 0.1 ; 

var_dump(

$a

); 

var_dump(

is_numeric

(

$a

)); 

//true 

var_dump(ctype_digit(

$a

)); 

//false 

 

$a

 = -1 ; 

var_dump(

$a

); 

var_dump(

is_numeric

(

$a

)); 

//true 

var_dump(ctype_digit(

$a

)); 

//false 

 

$a

 = a ; 

var_dump(

$a

); 

var_dump(

is_numeric

(

$a

)); 

//false 

var_dump(ctype_digit(

$a

)); 

//false