2011-04-28 55 views
1

我知道函数filter_var()返回true或false,但是当我的意思是,如果我有此函数时,返回true或falsePHP的filter_var功能

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

任何人都可以解释一下吗?

+0

手动明确表示:*返回过滤数据,或'FALSE'如果过滤器未能* – deceze 2011-04-28 04:12:03

+0

[filter_var()PHP手动](http://php.net/manual/en/function.filter-var.php) – endorama 2013-01-24 14:51:25

回答

0

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

0

正如@deceze所说的,您要么得到已清理的变量,要么返回FALSE,如果函数出错。现在,PHP可以让你做一些有趣的事情:如果一个变量被定义并用在条件语句中,那么任何不能隐式转换为布尔值FALSE的东西(即一个空字符串或一个实际的假值)将被视为等同于布尔值TRUE。当我们遍历从数据库中检索的数据集时,我们总是使用这种类型的东西。

所以,如果你打电话filter_var,并成功获取值回$value,该if()声明周边调用filter_var使用的$value的价值,因为它是有条件的。

HTH。

0

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

$x = 5; 
$y = 3; 
$z = 11; 
$t = 'abc'; 
$options = array(
    'options' => ['min_range' => 5, 'max_range' => 10], 
    'flags'  => FILTER_REQUIRE_SCALAR 
); 
if (false === filter_var($x, FILTER_VALIDATE_INT, $options)) { 
    // filter_var will return the value of $x (5) 
    // No exceptions will be thrown 
    throw new \InvalidArgumentException("$x is not a valid input"); 
} 
if (false === filter_var($y, FILTER_VALIDATE_INT, $options)) { 
    throw new \InvalidArgumentException("$y is not a valid input"); 
} 
if (false === filter_var($z, FILTER_VALIDATE_INT, $options)) { 
    throw new \InvalidArgumentException("$z is not a valid input"); 
} 
if (false === filter_var($t, FILTER_VALIDATE_INT, $options)) { 
    throw new \InvalidArgumentException("$t is not a valid input"); 
} 

不会抛出异常的唯一的变量是$x,因为它是一个整数,它是由$options['options']定义的范围内。

参见: