Php filter_var函数

Php filter_var函数,php,Php,我知道函数filter_var()返回true或false,但我的意思是如果 if( filter_var( $value , FILTER_VALIDATE_INT ) ) echo 'value is sanitized'; else echo 'value is sanitized'; 有人能解释一下这个函数何时返回true或false吗?它永远不会返回true。如果$value不是一个整数,它将返回false。正如@deceze所说,您要么返回经过净化的变量,要么返回

我知道函数filter_var()返回true或false,但我的意思是如果

if( filter_var( $value , FILTER_VALIDATE_INT ) )
    echo 'value is sanitized';
else 
    echo 'value is sanitized';

有人能解释一下这个函数何时返回true或false吗?

它永远不会返回true。如果
$value
不是一个整数,它将返回
false

正如@deceze所说,您要么返回经过净化的变量,要么返回false(如果函数出错)

现在,PHP让您可以做一些有趣的事情:如果定义了一个变量并在条件语句中使用它,任何不能隐式转换为布尔值FALSE(即空字符串或实际的FALSE值)的内容都将被视为等效于布尔值TRUE。比如说,当我们迭代从数据库检索到的数据集时,我们总是使用这种方法

因此,如果调用
filter\u var
并成功获取
$value
的值,则围绕调用
filter\u var
if()
语句将使用
$value
的值作为条件值

HTH.

如果函数成功,则的返回值是第一个参数的值,否则它将返回false

$x=5;
$y=3;
$z=11;
$t=‘abc’;
$options=array(
'选项'=>['最小范围'=>5'最大范围'=>10],
“标志”=>过滤器需要标量
);
if(false==filter\u var($x,filter\u VALIDATE\u INT,$options)){
//filter_var将返回$x(5)的值
//不会抛出任何异常
抛出new\InvalidArgumentException($x不是有效输入);
}
if(false==filter\u var($y,filter\u VALIDATE\u INT,$options)){
抛出new\InvalidArgumentException($y不是有效输入);
}
if(false==filter\u var($z,filter\u VALIDATE\u INT,$options)){
抛出new\InvalidArgumentException($z不是有效输入);
}
if(false==filter\u var($t,filter\u VALIDATE\u INT,$options)){
抛出new\InvalidArgumentException($t不是有效输入);
}
唯一不会引发异常的变量是
$x
,因为它是一个整数,并且在
$options['options']
定义的范围内

另见:

手册明确说明:返回过滤后的数据,如果过滤失败,返回
FALSE