判断是不是整数

首先,我们来了解一下round、ceil、floor、intval这几个函数的区别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$a = 3.4;
$b = 3.5;
echo round($a);//3
echo round($b);//4
//round4舍5入
echo ceil($a);//4
echo ceil($b);//4
//ceil返回不小与$val的下一个整数,所以ceil(3.0)=3
echo floor($a);//3
echo floor($b);//3
//floor去掉$val的小数部分的整数。
echo intval($a);//3
echo intval($b);//3
//intval取整数部分,与floor的区别是 intval能转换成非10进制的数。

判断数字是不是整数?

  • is_int()可以轻松判断一个数字是不是整数。
  • floor()舍去小数部分取整->floor($val) == $val
  • intval()这个函数比floor多了一个功能,就是能够转换成非10进制的整数->intval($val)==$val

判断字符串是不是整数

1
2
3
if(preg_match('/^[0-9]+$/',$val)){
???
}
  • intval->intval($val) == $val 开始觉得这个可以行,但是现在发现问题intval(‘a3’) == 0 == ‘a3’;
  • floor->floor($val) == $val开始也觉得这个行,但是跟上面的同理是不行的。
    为什么不能使用is_int呢?因为这个函数会对参数的类型进行检测,is_int(“3”)=false,说明is_int(string)=false。
文章目录
  1. 1. 判断数字是不是整数?
  2. 2. 判断字符串是不是整数
,