一,用法
1.is_int():检测变量是否是整数;is_integer 和 is_long() 都是它的别名;
is_int ( mixed $var ) : bool
2.is_numeric():检测变量是否为数字或数字字符串
is_numeric ( mixed $var ) : bool
3.ctype_digit():做纯数字检测
ctype_digit ( string $text ) : bool
二,区别
1,检测变量类型:
- in_int为整数,也就是整形(int)
- is_numeric为数字或数字字符串,也就是整形(int)、浮点型(floor)、字符串(string)
- ctype_digit为字符串,也就是字符串(string)
$value = 12;
var_dump(is_int($value)); //true
var_dump(is_numeric($value)); //true
var_dump(ctype_digit($value)); //false
$value = '12';
var_dump(is_int($value)); //false
var_dump(is_numeric($value)); //true
var_dump(ctype_digit($value)); //true
2,检查变量值
- in_int为整数,也就是正整数、0、负整数
- is_numeric为数字,也就是正负整数、正负小数、0
- ctype_digit比较特别,虽然说检查是否为数字,但因为它是逐个检测字符串中字符,所以负号和小数点是字符串型的,会判为false,个人觉得可以理解为验证值是否为非负整数
$value = 12.1;
var_dump(is_int($value)); //false
var_dump(is_numeric($value)); //true
var_dump(ctype_digit($value)); //false
$value = '12.1';
var_dump(is_int($value)); //false
var_dump(is_numeric($value)); //true
var_dump(ctype_digit($value)); //false