驗證值是整數
當過濾應該是整數的值時,filter_var()
將返回過濾後的資料,在本例中為整數,如果該值不是整數,則返回 false。浮點數不是整數:
var_dump(filter_var('10', FILTER_VALIDATE_INT));
var_dump(filter_var('a10', FILTER_VALIDATE_INT));
var_dump(filter_var('10a', FILTER_VALIDATE_INT));
var_dump(filter_var(' ', FILTER_VALIDATE_INT));
var_dump(filter_var('10.00', FILTER_VALIDATE_INT));
var_dump(filter_var('10,000', FILTER_VALIDATE_INT));
var_dump(filter_var('-5', FILTER_VALIDATE_INT));
var_dump(filter_var('+7', FILTER_VALIDATE_INT));
結果:
int(10)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
int(-5)
int(7)
如果你只期望數字,則可以使用正規表示式:
if(is_string($_GET['entry']) && preg_match('#^[0-9]+$#', $_GET['entry']))
// this is a digit (positive) integer
else
// entry is incorrect
如果將此值轉換為整數,則不必執行此檢查,因此可以使用 filter_var
。