函数检查一个整数在PHP中是否有效


Function to check if an integer is valid in PHP

是否有一个函数在PHP返回true如果字符串/int可以安全地转换为int?像这样:

var_dump(f('1'));//returns true
var_dump(f(1));//returns true
var_dump(f('1.2'));//returns false
var_dump(f(-2));//returns true
var_dump(f('3x'));//returns false

我不关心基数。
我检查了is_int,但是is_int('4')返回false。
我可以使用cast/interval,但是:
intval('6x')返回6,intval('x')返回0,intval(0)intval('0')也返回0

使用filter_var():

if (filter_var('1', FILTER_VALIDATE_INT)) {
     echo 'int'."<br>";
}
if (!filter_var('dog', FILTER_VALIDATE_INT)) {
     echo 'not int'."<br>";
}
演示

应该使用is_int()函数。

原因

is_int('4')

将返回false,因为它不是整数。当你在整数周围加上引号时,PHP会认为它是一个字符串——因此返回"false"。

试一下:

is_int(4)