2013-05-29 114 views
0

我不明白爲什麼filter_var(true, FILTER_VALIDATE_INT)返回1爲什麼filter_var(真,FILTER_VALIDATE_INT)返回1

它應該返回因爲真正的不整數

+1

您如何期望我們在不知道您作爲'$ variable'傳遞的情況下回答這個問題? – ceejayoz

+1

爲什麼你不使用內置函數'is_int'這個? –

+2

'filter_var(真,FILTER_VALIDATE_INT)''返回1',不'TRUE'。 [小提琴](http://3v4l.org/5ujT9) –

回答

4

原因的說法之一就是類型的混合,所以當你給一個bool它丟在INT所以返回1,您可以測試使用的var_dump

0

這可能是因爲你沒有傳遞一個整數。

看看這個:

var_dump(isInt(1)); // bool(true) 
var_dump(isInt("1")); // bool(true) 
var_dump(isInt("str")); // bool(false) 
var_dump(isInt(array(1))); // bool(false) 

功能是:與var_dump

function isInt($variable){ 
if (filter_var($variable, FILTER_VALIDATE_INT) !== false) { 
    return true; 
} 
return false; 
} 
1

嘗試測試...

var_dump(filter_var(true, FILTER_VALIDATE_INT)); 
// this returns int(1) 

DEMO