filter_var(FILTER_VALIDATE_INT) 和 is_int 有什么区别?

Mav*_*ick 0 php random

我在许多应用程序中使用过这两个函数来检查和验证整数,如下所示

$foo = $bar;

if (filter_var($foo,FILTER_VALIDATE_INT)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)

if (is_int($foo)) {
 // do something
}
Run Code Online (Sandbox Code Playgroud)

两者都工作得很好,但我想知道两者在速度和结果方面的区别,因为 PHP 是一种棘手的语言,在似乎做同样事情的函数之间存在差异,例如mt_randrand

dec*_*eze 6

这些filter函数旨在处理用户输入,该输入始终是字符串。FILTER_VALIDATE_INT将验证字符串是否是有效的整数(或者它已经是一个int),如果是则返回int

is_int只是告诉您值的类型是否为int