我知道函数filter_var()返回true或false,但是当我的意思是,如果我有此函数时,返回true或falsePHP的filter_var功能
if(filter_var($value , FILTER_VALIDATE_INT))
echo 'value is sanitized';
else
echo 'value is sanitized';
任何人都可以解释一下吗?
我知道函数filter_var()返回true或false,但是当我的意思是,如果我有此函数时,返回true或falsePHP的filter_var功能
if(filter_var($value , FILTER_VALIDATE_INT))
echo 'value is sanitized';
else
echo 'value is sanitized';
任何人都可以解释一下吗?
它永远不会返回true
。如果$value
不是整数,它将返回false
。
正如@deceze所说的,您要么得到已清理的变量,要么返回FALSE,如果函数出错。现在,PHP可以让你做一些有趣的事情:如果一个变量被定义并用在条件语句中,那么任何不能隐式转换为布尔值FALSE的东西(即一个空字符串或一个实际的假值)将被视为等同于布尔值TRUE。当我们遍历从数据库中检索的数据集时,我们总是使用这种类型的东西。
所以,如果你打电话filter_var
,并成功获取值回$value
,该if()
声明周边调用filter_var
使用的$value
的价值,因为它是有条件的。
HTH。
的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']
定义的范围内。
参见:
手动明确表示:*返回过滤数据,或'FALSE'如果过滤器未能* – deceze 2011-04-28 04:12:03
[filter_var()PHP手动](http://php.net/manual/en/function.filter-var.php) – endorama 2013-01-24 14:51:25