我知道函數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