[英]Php filter_var function
我知道 function filter_var() 返回 true 或 false 但是当我的意思是如果我有
if( filter_var( $value , FILTER_VALIDATE_INT ) )
echo 'value is sanitized';
else
echo 'value is sanitized';
谁能解释这个 function 何时返回真或假?
如果 function 成功,则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
因为它是一个 integer 并且它在$options['options']
定义的范围内。
也可以看看:
它永远不会返回true
。 如果$value
不是 integer,它将返回false
。
正如@deceze 所说,如果 function 出错,您要么取回经过清理的变量,要么取回 FALSE。
现在,PHP 可以让您做一些有趣的事情:如果定义了一个变量并在条件语句中使用,则任何无法隐式转换为 FALSE 的 Boolean 值(即空字符串或实际 false 值)的东西都将被视为等效Boolean 值为 TRUE。 我们一直在使用这种东西,比如说,迭代从数据库中检索到的数据集。
因此,如果您调用filter_var
并成功获取$value
的值,则围绕调用filter_var
的if()
语句使用$value
的值作为条件。
HTH。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.