2011-04-28 85 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']定義的範圍內。

參見: